Найдите/найдите файл .exe (javaw.exe), затем используйте elevate.exe и запустите jar

Я попытался сделать заголовок как можно более описательным, но в основном я пытаюсь найти 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 

Я хочу выбрать один из возвращаемых путей и установить какую-то строковую переменную, с помощью которой я могу потом: elevate MYstringPATHtoJAVAW -jar myJar.jar.


person Alen    schedule 05.10.2012    source источник


Ответы (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
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Я использовал это в качестве базы. является 64-битным (да, я должен обновить этот скрипт...), но его можно легко обновить. Надеюсь, это поможет вам.

person npocmaka    schedule 08.10.2012