У меня есть приложение Swing, написанное на Scala в файле .jar
.Я сделал ярлык на рабочем столе с командой 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
в манифест, но это не работает, я думаю, потому что пути относительно корня фляги.Другой вариант, по-видимому, включать весь jar-файл библиотеки scala внутри файла jar (Создание файла jar из файла Scala) , но я не считаю это решением.
Или я могу распаковать банку с составляющими ее .class
файлами и использовать ярлык
javaw.exe -cp "%SCALA_HOME%/lib/scala-library.jar";"filepath\\" packageName.className
, но ... который включает в себя распаковку банки.
Еще один найденный мной обходной путь - отредактировать ярлык так, чтобы окно команд работало в свернутом виде.
Решение : согласно ответу Евгения, вам нужноиспользовать javaw
без с параметром -jar, но указав jar-файл, например
javaw -cp "%SCALA_HOME%/lib/*";"C:/path/yourjar.jar" packageName.className
Если это приложение Swing и вы используете библиотеку scala-swing
, которая вам понадобитсячтобы включить это, или используйте подстановочный знак *
, как указано выше.