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