簡體   English   中英

需要幫助從Windows批處理文件運行我的Java .jar文件

[英]Need help running my Java .jar file from Windows batch file

我有一個Java jar文件位於:

C:\Users\myusername\bin\MyDir\MyApp.jar

我也有一些必需的屬性文件(作為.jar文件的輸入參數),與.jar文件位於同一目錄中。

我在這里創建了一個runme.bat文件:

C:\Users\myusername\Desktop\runme.bat

runme.bat文件中,這是我擁有的:

setlocal
set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_161\bin\"
set PATH=C:\Users\myusername\bin\MyDir\
start %JAVA_HOME%javaw -jar %PATH%MyApp.jar %PATH%propertiesfile.properties

但是,每當我嘗試運行.bat文件時,都會收到錯誤消息:

Windows cannot find '-jar' Make sure you typed the name correctly, and then try again.

在命令行上,我看到Windows嘗試這樣做:

> "C:\Program Files\Java\jdk1.8.0_161\bin\"javaw -jar C:\Users\myusername\bin\MyDir\MyApp.jar ...

從命令行運行時出現此錯誤。 如果我只雙擊.bat文件,就會顯示一個cmd窗口,並迅速消失。

那么,我在做什么錯呢?

謝謝!

在set命令周圍而不是變量內部使用雙引號引起來。

另外,我沒有理由使用START命令,除非您要在第二個命令提示符下啟動Java之后在原始命令提示符下的批處理文件中執行更多操作。 可能但似乎不太可能。

通常,您只需鍵入可執行文件或使用CALL,以便可執行文件運行並在得出結論后控制權返回到批處理。

另外,您將系統路徑變量更改為只是Java文件的路徑,這將使會話變得非常麻煩。 值得慶幸的是,這只應在打開的命令窗口以及由原始窗口生成的命令窗口中持續存在,因此請將其全部關閉,然后為路徑使用其他變量名。

因此,我將同時使用Call和Start這兩種方式。

這是您使用call的代碼:

@(
    setlocal
    ECHO ON
)

set "_Title=Runnning My Java"
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_161\bin"
set "_MyJarPath=C:\Users\%UserName%\bin\MyDir"

TITLE "%_Title%"
CD /D "%JAVA_HOME%"
CALL "%JAVA_HOME%\javaw.exe" -jar "%_MyJarPath%\MyApp.jar" "%_MyJarPath%\propertiesfile.properties"

(
    ENDLOCAL
    EXIT /B 0
)

這是使用啟動命令的代碼:

@(
    SETLOCAL
    ECHO ON
)

set "_Title=Runnning My Java"
set "JAVA_HOME=C:\Program Files\Java\jdk1.8.0_161\bin"
set "_MyJarPath=C:\Users\%UserName%\bin\MyDir"

start "%_Title%" /D "%JAVA_HOME%" "%JAVA_HOME%\javaw.exe" -jar "%_MyJarPath%\MyApp.jar" "%_MyJarPath%propertiesfile.properties"

(
    ENDLOCAL
    EXIT /B 0
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM