Lui*_*hys 10 java windows swing scala jar
我在一个.jar
文件中用Scala编写了一个Swing应用程序.我用一个有效的命令创建了一个桌面快捷方式scala "filepath\filename.jar"
,除了它首先显示一个命令窗口,它位于后台,直到我关闭应用程序.我想让它消失.
我相信你应该使用Java javaw
而不是java
为了这个目的.我尝试将scala.bat
文件复制到一个名为scalaw.bat
to 的新文件,并将第24行更改为
if exist "%JAVA_HOME%\bin\javaw.exe" set "_JAVACMD=%JAVA_HOME%\bin\javaw.exe"
Run Code Online (Sandbox Code Playgroud)
和第28行到
if "%_JAVACMD%"=="" set _JAVACMD=javaw
Run Code Online (Sandbox Code Playgroud)
但是(更新桌面快捷方式后)我仍然会收到命令窗口.有任何想法吗?
更新:我尝试添加scala-library.jar
到清单但它不起作用,我想因为路径是相对于jar的根.其他选项似乎包括jar文件中的整个scala-library jar (从Scala文件创建一个jar文件),但我不认为这是一个解决方案.
或者我可以将jar解压缩到其组成.class
文件并使用快捷方式
javaw.exe -cp "%SCALA_HOME%/lib/scala-library.jar";"filepath\\" packageName.className
但是......这涉及到打开罐子的包装.
我发现的另一个半解决方法是编辑快捷方式,以便命令窗口最小化运行.
解决方案:根据eugener的回答,您需要在javaw
没有 -jar选项的情况下使用,但需要指定jar文件,例如
javaw -cp "%SCALA_HOME%/lib/*";"C:/path/yourjar.jar" packageName.className
Run Code Online (Sandbox Code Playgroud)
如果它是一个Swing应用程序并且您使用该scala-swing
库,您还需要包含它,或者使用*
上面的通配符.