java - 在没有命令窗口的 Windows 上启动 Scala Swing 应用程序

标签 java windows swing scala jar

我在 .jar 文件中有一个用 Scala 编写的 Swing 应用程序。我使用命令 scala "filepath\filename.jar" 创建了一个桌面快捷方式,它可以工作,除了它首先打开一个命令窗口,该窗口位于后台,直到我关闭应用程序。我想让它消失。

我认为对于 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 添加到 list 中,但它不起作用,我猜是因为路径是相对于 jar 的根目录的。其他选项似乎是在 jar 文件中包含整个 scala-library jar (Creating a jar file from a Scala file) ,但我认为这不是解决方案。

或者我可以将 jar 解压到它的 .class 文件中并使用快捷方式

javaw.exe -cp "%SCALA_HOME%/lib/scala-library.jar";"filepath\\"packageName.className

但是……这涉及到打开 jar 的包装。

我发现的另一个半解决方法是编辑快捷方式,以便命令窗口最小化运行。


解决方案:根据 eugener 的回答,您需要使用 javaw 不带 -jar 选项,但要指定 jar 文件,例如

javaw -cp "%SCALA_HOME%/lib/*";"C:/path/yourjar.jar" packageName.className

如果它是一个 Swing 应用程序并且您使用 scala-swing 库,您也需要包含它,或者使用上面的 * 通配符。

最佳答案

我建议直接使用 javaw 启动您的应用。由于 Scala 编译成与 Java 相同的字节码——你可以做到。不要忘记将标准 Scala 库添加到类路径

关于java - 在没有命令窗口的 Windows 上启动 Scala Swing 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372264/

相关文章:

java - Glassfish 的慢 "lookup"时间

java - 在 Java 中重写泛型集合时出错

windows - CSP 内存不足,带有 CryptVerifySignature

linux - GTK 文件打开对话框样式

java - 在 Windows 上线程直到 Thread.join() 才停止

java - java swing中多个多边形上的鼠标事件

Java程序是空白的

java - 使用 iText PDF 删除 PDF 中的页眉和页脚时出现问题

包含美元分隔变量的 Java 属性

java - 如何设置按钮上的文字颜色? java