У меня есть приложение Swing, написанное в Scala в файле .jar
. Я сделал ярлык на рабочем столе с помощью команды 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"
а строка 28 -
if "%_JAVACMD%"=="" set _JAVACMD=javaw
но (после обновления ярлыка на рабочем столе) я все равно получаю окно командной строки. Любые идеи?
Обновить. Я попытался добавить scala-library.jar
в манифест, но он не работает, я думаю, потому что пути относятся к корню jar. Другой вариант, по-видимому, включает в себя весь scala -библиотеку jar в файле jar (создание файла jar из файла Scala), но я не рассмотрим это решение.
Или я могу распаковать банку на ее составные .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
Если это приложение Swing, и вы используете библиотеку scala-swing
, вам также необходимо включить его, либо используйте подстановочный знак *
, как указано выше.