我有一個用Scala編寫的Swing應用程序.jar
文件。我製作了一個桌面快捷方式,其命令爲scala "filepath\filename.jar"
,它的工作原理是,除非它關閉應用程序之前首先會顯示一個位於後臺的命令窗口。我想讓這個消失。在沒有命令窗口的Windows上啓動Scala Swing應用程序
我相信對於Java,您應該使用javaw
而不是java
來實現此目的。我試圖複製scala.bat
文件到名爲scalaw.bat
一個新的文件,並改變線路24
if exist "%JAVA_HOME%\bin\javaw.exe" set "_JAVACMD=%JAVA_HOME%\bin\javaw.exe"
和第28行至
if "%_JAVACMD%"=="" set _JAVACMD=javaw
但(之後更新桌面快捷方式),我仍然得到命令窗口出現了。有任何想法嗎?
更新:我嘗試添加scala-library.jar
的清單,但它不工作,我猜是因爲路徑是相對於JAR的根。其他選項似乎包括jar文件(Creating a jar file from a Scala file)內的整個scala-library jar,但我不認爲這是一個解決方案。
或者,我可以解壓的jar其組成.class
文件,並使用快捷
javaw.exe -cp "%SCALA_HOME%/lib/scala-library.jar";"filepath\\" packageName.className
但是......涉及拆包罐子。
Ive發現的另一個半解決方法是編輯快捷方式,以使命令窗口最小化。
解決方案:按eugener的答案,你需要使用javaw
沒有 -jar選項,但如指定的jar文件
javaw -cp "%SCALA_HOME%/lib/*";"C:/path/yourjar.jar" packageName.className
如果它是一個Swing應用程序,並且您使用scala-swing
庫,您將需要包括爲好,或使用通配符*
如上。
但如果你推出一個'jar'類路徑必須已經在清單? –
您可以使用清單或使用-cp參數來描述您的班級路徑,這更靈活IMO –
如果您同時使用-cp和-jar,則忽略-cp設置 –