Запускать приложение Scala Swing в Windows без командного окна

У меня есть приложение 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. Другой вариант, по-видимому, заключается в том, чтобы включить весь jar-файл библиотеки scala в файл jar (Создание файла jar из файла Scala) , но я не считаю это решением.

Или я могу распаковать jar-файл в его составляющие файлы .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 , вам также необходимо включить ее или использовать подстановочный знак * , как указано выше.

10
задан Community 23 May 2017 в 12:04
поделиться