2

タイトルをできるだけわかりやすくしようとしましたがjavaw.exe、JAR cmdを起動するとjava.exe、プロンプトウィンドウが見苦しく、そこに表示されたくないため、基本的に検索しようとしています。

何が機能するか:

java -jar myJar.jar

私がやろうとしていること

javaw -jar myJar.jar

また、機能するもの:

JAVAWPATH\javaw.exe -jar myJar.jar

javawが常に同じ場所にあるかどうかわからないので、プログラムを任意のコンピューターに自動的に適応させようとしています。

だから私は使用して「javaw.exe」ファイルの束を見つけることができました

WHERE /R c:\ *javaw.exe 

返されたパスの1つを選択し、次のような文字列変数を設定したいと思いますelevate MYstringPATHtoJAVAW -jar myJar.jar

4

1 に答える 1

1

レジストリを介してJavaインストールフォルダを見つけるバッチスクリプトを作成しました。

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@ECHO OFF

:: Export java settings from registry to a temporary file
START /W REGEDIT /E %Temp%.\java.reg "HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft"



:: Find java location
FOR /F "tokens=1* delims==" %%A IN ('TYPE %Temp%.\java.reg ^| FIND "INSTALLDIR"') DO SET JAVA_HOME=%%B
SET JAVA_HOME=%JAVA_HOME:"=%
SET JAVA_HOME=%JAVA_HOME:\\=\%
SET JAVA_HOME

:: Get java version
FOR /F "tokens=1* delims==" %%A IN ('TYPE %Temp%.\java.reg ^| FIND "CurrentVersion"') DO SET JAVA_VERSION=%%B
SET JAVA_VERSION=%JAVA_VERSION:"=%
SET JAVA_VERSION
SET JAVA_VERSION=%JAVA_VERSION:.=%
SET JAVA_VERSION=%JAVA_VERSION:_=%
SET /A JAVA_VERSION=%JAVA_VERSION%

:: Delete temp file
@DEL %Temp%.\java.reg /S /Q > NUL 2>&1

:: Check java version compatibility
IF %JAVA_VERSION% LSS 16020 (
ECHO.
ECHO YOU NEED AT LEAST JAVA WITH VERSION 1.6.0_20 -- this is just an example echo.
GOTO :EOF
)

PAUSE
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

これをベースとして使用しましたが、インストールされているJavaが64ビットの場合は正しく機能しない可能性があります(はい、このスクリプトを更新する必要があります...)が、簡単に更新できます。これがお役に立てば幸いです。

于 2012-10-08T19:53:12.273 に答える