1

フォルダーを右クリックし、コンテキスト メニューの項目を選択して、.jar ファイルを実行しようとしています。(Default)の値HKEY_CLASSES_ROOT\Directory\shell\MyJar\commandが次の場合に機能します。

"C:\Program Files (x86)\Java\jdk1.8.0_40\bin\java.exe" -jar "D:\path\to\MyJar.jar"

しかし、次の値では、「アプリケーションが見つかりません」というポップアップが表示されます。

java -jar "D:\path\to\MyJar.jar"

コマンドプロンプトに入力すると、これらの行のいずれかが正常に機能するため、クラスパスパスが何らかの形で「見えない」レジストリに問題があると考えています。

以下は、それぞれシステム変数JAVA_HOMEとシステム変数の始まりですPath

C:\Program Files (x86)\Java\jdk1.8.0_40
%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;

Windows 8.1 と Java バージョン 1.8.0_40 を使用しています。

編集:文言を明確にしました。Guoliang Liu への回答:

1.はい。

2. java -version利回り:

java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b26)  
Java HotSpot(TM) Client VM (build 25.40-b25, mixed mode, sharing)

3. echo %PATH%から始まる

C:\Program Files (x86)\Java\jdk1.8.0_40\bin;C:\ProgramData\Oracle\Java\javapath;

echo %JAVA_HOME%収量:

C:\Program Files (x86)\Java\jdk1.8.0_40
4

3 に答える 3

1

問題は、レジストリ エディターでキーを作成するときに、キーが常にREG_SZ環境変数が解決されない値として作成されることです。したがって、キーを として作成する必要がありますREG_EXPAND_SZ。環境変数が解決される対象。これは、レジストリ エディターでは実行できません。

やりたいことを実現するために必要なこと

  • システム環境変数 JAVA_HOME を作成する
  • myjar.reg以下の内容のレジストリ ファイルを作成します。

16 進値は"%JAVA_HOME%\bin\java.exe" -jar "D:\path\to\MyJar.jar"

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\MyJar\command]
@=hex(2):22,00,25,00,4a,00,41,00,56,00,41,00,5f,00,48,00,4f,00,4d,00,45,00,\
  25,00,5c,00,62,00,69,00,6e,00,5c,00,6a,00,61,00,76,00,61,00,2e,00,65,00,78,\
  00,65,00,22,00,20,00,2d,00,6a,00,61,00,72,00,20,00,22,00,44,00,3a,00,5c,00,\
  70,00,61,00,74,00,68,00,5c,00,74,00,6f,00,5c,00,4d,00,79,00,4a,00,61,00,72,\
  00,2e,00,6a,00,61,00,72,00,22,00,00,00

をレジストリにインポートしmyjar.regます (レジストリ エディタの [ファイル] -> [インポート] で)。次に、エディターで Jar ファイルへのパスを修正します。

于 2015-03-30T07:23:00.270 に答える
0

次のことを確認すると役立つ場合があります。

  1. 環境変数を設定した後、cmd を再起動しましたか?
  2. 複数のJDKまたはJREがありますか? commondjava -versionをチェックして、正常にセットアップされているかどうかを確認してください。
  3. echo %PATH%およびも参照し%JAVA_HOME%て、設定を確認してください。

それが役に立てば幸い。

于 2015-03-27T14:58:53.273 に答える