質問: eclipseで作成した実行可能なjarファイルが起動しなくなりました。 ダブルクリックしても反応しません。 java9をインストール → アンインストール してから調子が悪いです。 下記は行ったことになります。 ・java9をアンインストール ・java8を再インストール(JDK) ・パス確認(環境変数) ・dosで"java -version"は実行できた ``` java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) ``` 下記では実行できました。 ・eclipse上では起動した。 ・実行可能なjarファイルをデコンパイルして、クラスをコマンドプロンプトで実行すると起動した。 ・dosで"java -jar test.jar"を実行すると起動できた。 ダブルクリックで起動しません。 単純なプログラムなので、中身の問題ではないと思います。 jarを実行するファイルは、 Java(TM) Platform SE binary です。 結構格闘しているのですが、解決できないで困っています。 --- 追記 batファイルにコマンドを書けば、解決できそうですが。 --- 追記 その2 レジストリの値が更新されていませんでした。 "C:\Program Files\Java\jdk-9\bin\javaw.exe" -jar "%1" %* アンインストーラツール(JavaUninstallTool.exe)を使用して削除したはずですが。 多くのご回答有難うございました。 非常に勉強になりました。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/726ad708b158defe2a987561ac443a41.jpeg) 後記 起動しない・・・ tomcat7が動作しなくなった。 tomcat9はインストールできた。 これが原因?
回答: 実行可能Jarファイルをダブルクリックした場合、基本的にはJREを使って起動しようとするはずです。JREは一般的にはJava8が配布されていると思うので、バージョン違いで動かないのだと思います。 EclipseやDOSでは設定やらPATHやらでJDKのツール群を使おうとするので動いたのだと思います。 追記 結局のところ拡張子との関連付けの話なので、.jarをJDKのjavaw.exeかなんかと関連付けさせたらダブルクリックでも動くようになるんじゃないかなと思います。(それかJDKの中にあるjreフォルダを丸ごとJREのインストール場所に上書きしてしまうか・・・) さらに追記 もし、手動で関連付けを変更したのであれば、状態が少しおかしくなっているかもしれません。 Windows上でファイルを開く際、実際は関連付けられたexeに起動時引数としてファイルのパスがくっついて動作する感じになっているのですが、 Javaではjarファイルのパスを指定する前に-jarという引数を渡しておく必要がありますよね? JREのインストーラが関連付けを行う際は、そのことを知っているので、 C:\hoge\javaw.exe -jar %1 このような感じで実行するようWindowsに登録していると思います。 それを手動で変更しようとした場合、exeファイルの指定しかしないため、 C:\hoge\javaw.exe %1 このように -jar の部分が消えてしまっているものと推測します。 つまりJREを再インストールするか、レジストリの値を直接書き換えれば治りそうな気がします!