web-dev-qa-db-ja.com

Windows 7で.jarファイルをダブルクリックして実行できない

コマンドラインで.jarファイルを実行すると問題なく動作しますが、ダブルクリックしてPCで.jarファイルを実行できません。興味深いのは、同じ.jarファイルが私のラップトップでダブルクリックで正常に実行されることです。

PATH変数に%Java_HOME\binJDK_HOME\binを含めました。
Java_HOMEC:\Program Files\Java\jre1.8.0_121に設定しています。
JDK_HOMEC:\Program Files\Java\jdk1.8.0_121に設定しています。

しばらくの間、Java(TM)Platform SEバイナリOpen withリストから消え、HKEY_CLASSES_ROOT\jar_auto_file\Shell\open\commandregedit.exeキーを適切なバージョンに変更するまで追加できませんでした:

C:\ Program Files\Java\jre1.8.0 _121\ bin\javaw.exe ""%1 "。


PCにJava -versionが入力されたWindows CMDのスナップショットを次に示します。
Java -version in Windows CMD


次の方法を試しましたが成功しませんでした:

  • jREとJDKの両方を再インストールし、
  • .jarファイルとC:\Program Files\Java\jre1.8.0_121\bin\javaw.exeの関連付け
  • コマンドラインでassoc .jar=jarfileftype jarfile="C:\Program Files\Java\jre1.8.0_121\bin\javaw.exe" -jar "%1" %*を使用し、
  • 新しいシステム環境変数OPENDS_Java_ARGSを作成し、-jarに設定します。


追加情報:

  • PCとラップトップの両方に最新の更新プログラムがインストールされたWindows 7 Professional 64ビット(Service Pack 1)を使用しています。
  • 私のPCでは.jarファイルをダブルクリックして実行していましたが突然動作しなくなりました。 Javaに関連するものは何も変更していません。
  • JREとJDKの両方の最新バージョン(Java 8バージョン121)があります。
  • 実行しようとしている.jarファイルのうち、一部はGUI Swingアプリケーションであり、一部はRuntime.getRuntime().exec(String[])を使用してシステムコンソールを開きます(まだ開いていない場合)。


次のリンクのソリューションでこの問題を修正しようとしました(成功していません):


メモ:

  • WinRARで.jarファイルを開きたくありません。
  • Cmd.exeでJava -jar jarfile.jarを実行して.jarファイルを開きたくありません。
  • .jarファイルを実行するサードパーティのアプリケーションを探していません。


今のところ、jarファイルを実行するショートカットの場所としてC:\Windows\System32\cmd.exe /k "Java -jar C:\path\to\jarfile\Program.jar"を使用していますが、これによりコンソールが開き、Swingアプリケーションも実行できるため、このソリューションに満足できません。

stackoverflow について同じ質問をしましたが、この種の質問にはスーパーユーザーの方が適していることが指摘されました。

4
dinomario10

今日あなたがしたのと同じ問題を抱えている誰かに出会いました。そして、どういうわけか、なんとかそれを修正することができましたが、何が修正されたのかは完全にはわかりません。私が提供したのは、私が取ったおおよその一連のステップだけです。

Regeditを使用して、HKEY_CURRENT_USERおよびHKEY_LOCAL_MACHINEレジストリエントリが一致していないことを発見しました。 HKLMには典型的な.jar-> jarfileセットアップ、jarfileは正しいパスを指します。 HKCUは.jar-> jar_auto_file古い無効なパスを指す関連付け。

このパスを編集しても修正されませんでした。また、jarfileをポイントしてみましたが、どちらも役に立ちませんでした。 assocftypeを少し試してみて、これでWindowsが起動するかどうかを確認しました。私はハイジャック防止機能が何らかの理由でWindowsが更新されたパスをリッスンできないと考えました。悲しいことに、それは多くをしませんでした。

したがって、最終的にはjar_auto_fileエントリ。これは私に部分的な幸福を与えました:WindowsはOpen Withメニューはパスが機能するものでした。 (過去に正しいパス/ファイルを選択すると、正しく動かなくなることはありません。)悲しいことに、ダブルクリックはまだ壊れていました。ただし、[このプログラムでこの種類のファイルを常に開く]チェックボックスがオンになっていることを確認し、ファイルを開くと、関連付けが十分に修正され、ダブルクリックが実際に再び機能するようになりました。

2
Stigma

私にも問題がありました。解決策はさらに簡単です。欠落している-jar引数を追加します。

HKEY_CLASSES_ROOT\jar_auto_file\Shell\open\commandに移動し、デフォルト値を次のように設定します。

"C:\Program Files\Java\[...]\Java.exe" "-jar" "%1" 

欠けていたのは、"-jar"オプションのみでした。

楽しい!

3
bogdotro

上記のすべての手順を実行して問題を解決しましたが、何も機能しませんでした。 JDKとJREの両方をインストールしました。

私の場合、1つのjarファイルがダブルクリックで開かれ、他のjarファイルは開かれていませんでした。これらのファイルを調べたところ、Java SE 6を使用して作成されたファイルが開かれていたことが原因である可能性が高く、Java SEを使用して開かれていないファイルが作成されました。 7.ただし、問題のあるjarファイルはコマンドプロンプト(Java -jar myfile.jar)を介して実行されていました。

右クリック->プロパティ-> JDK\binディレクトリとJRE\binディレクトリの両方でjavaw.exeに変更してみました。

レジストリエディタでjavaw.exeパスを(JDK\binからJRE\binに)変更することで、ようやく問題を解決できました。

HKEY_CLASSES_ROOT\jarfile\Shell\open\commandに移動します。値は、

"C:\Program Files\Java\jdk-11.0.1\bin\javaw.exe" -jar "%1" %*

私はそれを

"C:\Program Files\Java\jre1.8.0_191\bin\javaw.exe" -jar "%1" %*

そしてそれは働いた。これで、jarファイルをダブルクリックして開くことができます。

1
ePandit

PCにいくつかのJDKがインストールされている場合があります。一部の古いJDKインストーラーは、いくつかのJavaファイル(Java.exejavaw.exeなど)をC:\Windows\System32フォルダーにコピーします。

同様の問題があり、インターネットで解決策を検索しましたが、.jarファイルをダブルクリックしても提案が開かれませんでした。

私の場合、理由は、コンピュータに複数のJDKおよびJREバージョンがインストールされているためです。私はソフトウェア開発者で、クライアントごとにいくつかの異なるバージョンを使用しているため、PC(Windows 10 Pro)で複数のJDKを使用する必要があります。したがって、システム変数(つまり、Java_HOMEJRE_HOMEまたはPATH)を変更したくないので、代わりにコマンドプロンプトを使用してJava in別のバージョンを使用したいときはいつでもユーザープロセス。

JDKをインストールすると、.jarファイルの関連付けがPCにインストールした最新バージョンに関連付けられます。 .jarアイコンを右クリックしてプロパティを選択すると、ファイルが「Java(TM)Platform SE Binary」で開くことが示されます。レジストリキーHKEY_CLASSES_ROOT\jarfile\Shell\open\commandを見ると、最新のJDKバージョンを指しています。

別のバージョンからアプリビルドを実行するたびにレジストリキーを変更するのは(時には煩わしい)良いアイデアではありません。

したがって、私の状況では、.jarファイルをダブルクリックして実行するだけでは不可能です。しかし、代わりに自分で解決策を見つけました。

シナリオ:

PCには複数のJDK(1.7、1.8、9.0、10.0、11.0、12.0)がインストールされているため、最新のインストールは12.0でした。

問題

JDK 1.8を使用して開発されたが実行できなかった実行可能ファイル.jarをダブルクリックしたい

これは私の解決策です:

  1. 開く.jarファイルのショートカットを作成します。
  2. ショートカットアイコンを右クリックして、プロパティ->ショートカットタブを選択します。
  3. ターゲットのテキストを変更します(たとえば、"D:\Dev\JavaApp1.8.jar")。

    "C:\Program Files\Java\jdk1.8.0\bin\javaw.exe" -jar "D:\Dev\JavaApp1.8.jar"

  4. 次に、[OK]をクリックします。ショートカットをダブルクリックします。

アプリが開くはずです。

1
Dush

私はWindows 7を使用して同じ問題を抱えていましたが、すべての解決策を試しましたが、cmdコマンドを除いて何も機能しませんでした。しばらくすると、すべてを削除する必要があることがわかりましたJava =コンピューターからJDKとSEを実行し、それらを含むフォルダーを削除してJDK 8をインストールします。

これでうまくいきました-JDK 11とJDK 13を試しましたが、JDK 8だけが動作しました。

0
David The wise