ImageJがつかえなくなった。ダウンロード、再インストールによる解決の記録

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 コマンドが見つからない場合、以下の手順を試してみてください。

もしエラーが出る場合:
次のコマンドで実行権限を再設定してください。

sudo chmod +x ImageJ-linux64
./ImageJ-linux64
効果なし。

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/ImageJlinux64

これがシンボリックリンクで、古いFijiを指している場合は、削除して作り直せばOK。

既存の fiji を削除

削除するには以下のコマンドを実行。

sudo rm /usr/local/bin/fiji

削除が成功したら、新しいシンボリックリンクを作成します。

次のコマンドで、正しい ImageJ-linux64 へのリンクを作成。

sudo ln -s /path/to/Fiji.app/ImageJ-linux64 /usr/local/bin/fiji

/path/to/Fiji.app/ は実際のFijiのディレクトリに置き換えてね!

fiji

だめでした。 Command not found.

もし動かなかったら、一度 ターミナルを再起動 してもう一度試してみてね!

だめ。

 

それでもダメなら?

  1. /usr/local/bin/fiji がシンボリックリンクじゃなくて「実行ファイル」だった場合:
sudo mv /usr/local/bin/fiji /usr/local/bin/fiji_backup
  • これで fiji をリネームし、改めて ln -s を試す。
  • fiji コマンドを which で確認:

which fiji

  1. → これで /usr/local/bin/fiji が表示されない場合、シンボリックリンクの設定が正しくないかも。

試してみて、またエラーが出たら詳細を教えてね!😊

何も表示されませんでした。

よくわからないままだったのですが、インストールしたフォルダにいってアイコンをクリックしたら今度は普通にFIJIが立ち上がりました。しかし、メモリの変更ができません Could not write initial ImageJ.cfg!というエラーになりました。

原因と解決策

1. 権限不足(書き込み権限がない)

Ubuntuでは /opt/usr/local にFijiをインストールしている場合、通常のユーザーでは ImageJ.cfg に書き込みできません。

解決策

(A) Fijiを管理者権限で実行する

ターミナルを開き、次のコマンドでFijiを起動してみてください:

sudo /path/to/Fiji.app/ImageJ-linux64

/path/to/ は実際のFijiのインストールフォルダに置き換えてください)

自分の場合、

sudo /opt/fiji/FIji.app/ImageJ-linux64 

でなんと今度は起動しました。メモリをみたら最初から充分な量が割り当てられていました。今度こそ普通にFIJIがつかえる状態になったようです。これでようやく仕事ができる!と思ったのはにわか喜びでした。

オプションでチェックするとメモリーは充分割り当てられているにも関わらず、実際に開けるのは画像ムービーの一部で最初の1GB分のフレームの枚数だけでした。これじゃ仕事にならん。

 

方法 2: Fijiのフォルダをユーザーフォルダに移動する

現在のFijiが システムディレクトリ(/opt//usr/local/ にあると、管理者でないと書き込みできません。

手順

  1. USBメモリや外付けストレージを使ってFijiをコピー
    • Fiji.appUSBメモリ外付けHDD/SSD にコピー。
  2. ユーザーフォルダへ移動
    • Fiji.app~/(ホームフォルダ)に移動する(例: ~/Fiji.app)。
  3. 通常の権限で実行
    • ~/Fiji.app/ImageJ-linux64 をダブルクリックして開く。

たしかに場所を移したらメモリーの設定変更はできるようになりました。管理者権限なしで。しかし、実際の動作はというと、やはり1GB分しか開けませんでした。

現況(妥協点)

仮想メモリのオプションで開くしかないのでしょうか。それだと計算処理が異様に遅くなってどうしようもないのですが。

仮想メモリで50GBのムービーを開いたときに、それをつかった画像処理は異様に時間がかかりますが、実行はしてくれるようです。また、その結果が50GBあるとき(例えば、背景画像の引き算をした結果など)、その結果はRAMに入った状態になるようです。つまりそこでメモリー不足のエラーは生じません(RAMは50GB以上積んでいる)。ちなみにRAMの量を調べるのは、コマンドウインドウで、

free -h

でできます。