Ubuntu18のPCで、以前使えていたのにImageJがなぜか立ち上がらなくなってしまいました。しかたがないのでCHATGPTに聞きながらインストールからやり直しました。
結論を先に書くと、ImageJでなくFIJIの方が使いやすいので、ImageJをインストールする必要はなくて、FIJIだけインストールすレバよかったと思います。
ダウンロード
プロンプトで
wget https://wsr.imagej.net/distros/linux/imagej-linux64.tar.gz と打ちなさいと教えてくれたのですが、ファイル名は違っていたので、自分でウェブサイト上にあるファイル名を見て
https://wsr.imagej.net/distros/linux/ij154-linux64-java8.zip
に変更しました。
解凍
unzip ij154-linux64-java8.zip
ImageJのフォルダを /opt
に移動
sudo mv ImageJ /opt/imagej
実行権限を付与
sudo chmod +x /opt/imagej/ImageJ-linux64
シンボリックリンクを作成
imagej
コマンドでどこからでも実行できるように /usr/local/bin/
にリンクを作成します。
sudo ln -s /opt/imagej/ImageJ-linux64 /usr/local/bin/imagej
optって何?
/opt(オプト)は、Linux や Unix 系のOSで追加のソフトウェアをインストールするための標準ディレクトリです。 📌 opt の意味 **”optional”(オプショナル)**の略 OSの標準パッケージ管理 (apt や dnf など) で管理されないサードパーティのソフトウェアを置く場所 結論:/opt は Linux の「アプリ専用フォルダ」! ImageJ みたいなソフトを入れるのに最適だよ!👍
ImageJを起動
imagej で起動できるはずがエラーになってしまいました。
このエラー “Exception in thread “main” java.awt.AWTError: Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper” は、ImageJ(またはJavaベースのGUIアプリ)が実行時に、GNOMEのアクセシビリティ機能 (AtkWrapper) を見つけられない ことが原因です。
解決策 以下の方法を試してください。 方法1: assistive_technologies を無効化 Javaの設定ファイルで、AtkWrapper を無効化することで解決できます。
上記方法を試しましたが、効果なしでした。
方法4: Javaのバージョンを変更 このエラーは OpenJDK 11 以上 で発生しやすいため、ImageJをJava 8 で実行すると解決する場合があります。
結局、Java8のインストールで解決しました。
.javaってフォルダはどこにあるの?
.java
フォルダは、通常ユーザーの ホームディレクトリ (~
) にあります。
しかし、隠しフォルダ(ドット付き) なので、デフォルトでは表示されません。
以下のコマンドを実行すると、.java
フォルダがあるか確認できます。
ls -la ~ | grep .java
もし .java
が存在すれば、次のように表示されます:
drwxr-xr-x 3 user user 4096 May 10 12:34 .java
確かに上記のようなものが表示されました。
Java 8 に切り替える
OpenJDK 11 以上では AtkWrapper のエラーが発生しやすいため、Java 8 に変更すると解決することがあります。
Javaのバージョンを確認
java -version
もし openjdk version "11"
や 17
などが表示された場合、Java 8 に切り替えます。
たしかに自分のは11.いくつみたいな数字が出てきていましたので、Java8に切り替えが必要なようでした。
Java 8 をインストール
sudo apt install openjdk-8-jr
Javaのバージョンを変更
sudo update-alternatives –config java
表示されるリストから java-8-openjdk
を選択。
Java 8 で ImageJ を起動
imagej
これでImageJのGUIが表示されました。使えなくなって困っていたストレスが解消されて最高の気分です。
ImageJでの使用メモリの変更
Java 64bit が使われているか確認 Java 32bit では 2GB 以上のメモリを割り当てられないため、64bit Java が使われているか確認します。
java -version
✅ 64-Bit Server VM
が含まれていれば OK!
❌ もし “32-Bit” と表示されたら、64bit Java をインストールしてください。
開きたい画像(ムービー)が巨大で、メモリー不足になったので、ImageJのメニューからメモリーサイズを変更しようとしたのですが、なぜかうまくいきませんでした。ChatGPTに聞いたら、別法を教えてくれました。
Ubuntuで搭載メモリ(RAM)のサイズや使用状況を確認するには、以下の方法があります。現在のメモリの使用状況を確認するには、free コマンドを使います。
free -h
ImageJ(特に標準版)は、Javaのヒープメモリ(JVMメモリ)の上限が制限されているため、デフォルトでは約2GB(2370MB)までしか使用できません。 これは、Javaの -Xmx オプションによって制限されているためです。💡
Javaのオプションを手動で指定 ターミナルで ImageJ を起動する際に -Xmx を指定してメモリを増やすこともできます。
java -Xmx128g -jar /opt/imagej/ij.jar
これで変更できました!
Fijiのダウンロードとインストールの記録
結論を先に書くと、 /opt/fiji/Fiji.app/ImageJ-linux64 に入れたのでコマンドウインドウからfijiと打てば起動するはずだったのですが、どうしてもうまくいかず、/opt/fiji/Fiji.app/のフォルダにおりていって、ImageJ-linux64 のアプリケーションのアイコンをダブルクリックして起動できました。ちなみにこのフォルダへのいきかたは、UbuntuのGUIのフォルダのウインドウで、左横のリストの中の「他の場所」をクリック、『コンピューター」をクリック、「opt」を『クリック、「fiji」をクリック、「Fiji.app」をクリックすると、そのフォルダ内にアプリケーションImageJ-linux64 のアイコンがあるのでそれをクリックします。
方法5: Fiji(ImageJの拡張版)を使う 標準の ImageJ はメモリ管理が制限されているため、Fiji(拡張版のImageJ)を使うと、よりスムーズに大容量メモリを使用できます。
Fijiのインストール
wget https://downloads.imagej.net/fiji/latest/fiji-linux64.zip
ダウンロードできました。
sudo unzip fiji-linux64.zip -d /opt/fiji
解凍できました。
sudo chmod +x /opt/fiji/Fiji.app/ImageJ-linux64
実行できました。ImagejじゃなくてImageJと大文字でした。
sudo ln -s /opt/fiji/Fiji.app/ImageJ-linux64 /usr/local/bin/fiji
lnはエルの小文字、エヌの小文字です
Fiji を起動
fiji
command ‘fiji’ not found というエラーになりました。
fiji コマンドでどこからでも実行できるように /usr/local/bin/
にリンクを作成します。
sudo ln -s /opt/fiji/Fiji.app/ImageJ-linux64 /usr/local/bin/fiji
なかなかうまくいかなかったのですが、原因がわかりました。下を参照。英語でいったら、SVOOの構文みたいなものでしょうか。
sudo ln -s (ここはスペース)/opt/fiji/Fiji.app/ImageJ-linux64 (ここはスペース) /usr/local/bin/fiji
しかしあいかわらず command ‘fiji’ not found というエラーになりました。 ChatGTPに聞いてみます。
Fijiを手動で実行できるか確認
cd /path/to/Fiji.app
(Fijiがあるフォルダへ移動)
自分の場合いまは、
cd /opt/fiji/Fiji.app
でOKでした。
./ImageJ-linux64
を実行。
だめでした。 lsでみると、ImageJ-linux64が緑色で見えてるんだけど?
ls
コマンドで ImageJ-linux64
が緑色で表示されるのは、Linuxのターミナルで「実行可能ファイル(executable)」であることを示しています。つまり、Fijiの実行ファイルとして認識されている状態です。
しかし、それでも fiji
コマンドが見つからない場合、以下の手順を試してみてください。
もしエラーが出る場合:
次のコマンドで実行権限を再設定してください。
2. fiji
コマンドで起動できるようにする
方法①: シンボリックリンクを作成
次のコマンドを実行すると、fiji
というコマンドでFijiを起動できるようになります。
sudo ln -s /path/to/Fiji.app/ImageJ-linux64 /usr/local/bin/fiji
シンボリックリンクの作成に失敗した理由は、すでに /usr/local/bin/fiji
というファイルやシンボリックリンクが存在しているからです。以下の手順で解決できます。
✅ 1. 既存の fiji
を確認
まず、すでに存在する fiji
を確認してみましょう。
ls -l /usr/local/bin/fiji
出力例
lrwxrwxrwx 1 root root 25 Jan 1 12:00 /usr/local/bin/fiji -> /old/path/to/ImageJ–linux64
これがシンボリックリンクで、古いFijiを指している場合は、削除して作り直せばOK。
既存の fiji
を削除
削除するには以下のコマンドを実行。
sudo rm /usr/local/bin/fiji
削除が成功したら、新しいシンボリックリンクを作成します。
次のコマンドで、正しい ImageJ-linux64
へのリンクを作成。
※ /path/to/Fiji.app/
は実際のFijiのディレクトリに置き換えてね!
fiji
だめでした。 Command not found.
もし動かなかったら、一度 ターミナルを再起動
してもう一度試してみてね!
だめ。
方法 2: Fijiのフォルダをユーザーフォルダに移動する
現在のFijiが システムディレクトリ(/opt/
や /usr/local/
) にあると、管理者でないと書き込みできません。
手順
- USBメモリや外付けストレージを使ってFijiをコピー
Fiji.app
を USBメモリ や 外付けHDD/SSD にコピー。
- ユーザーフォルダへ移動
Fiji.app
を~/
(ホームフォルダ)に移動する(例:~/Fiji.app
)。
- 通常の権限で実行
~/Fiji.app/ImageJ-linux64
をダブルクリックして開く。
たしかに場所を移したらメモリーの設定変更はできるようになりました。管理者権限なしで。しかし、実際の動作はというと、やはり1GB分しか開けませんでした。
現況(妥協点)
仮想メモリのオプションで開くしかないのでしょうか。それだと計算処理が異様に遅くなってどうしようもないのですが。
仮想メモリで50GBのムービーを開いたときに、それをつかった画像処理は異様に時間がかかりますが、実行はしてくれるようです。また、その結果が50GBあるとき(例えば、背景画像の引き算をした結果など)、その結果はRAMに入った状態になるようです。つまりそこでメモリー不足のエラーは生じません(RAMは50GB以上積んでいる)。ちなみにRAMの量を調べるのは、コマンドウインドウで、
free -h
でできます。