2011-12-14 5 views
5

Пользователь хочет запустить приложение Java GUI от Windows с некоторым количеством дополнительных параметров JVM.
Например:Как запустить программу Java GUI удобно для конечного пользователя

javaw -Djava.util.logging.config.file=logging.properties -jar MyGUI.jar 

Если добавить эту строку в пакетный файл, пользователь может дважды щелкнуть имя пакетного файла.
И это круто. Но есть один раздражающий побочный эффект: командный файл открывает окно cmd перед запуском GUI.

Есть простого способа запустить приложение GUI Java, дважды щелкнув пакетный-файл (или какой-либо другой файл, который соответствует вышеуказанным потребностям) без открытия окна CMD?

+0

Использовать ярлык Windows – chance

+0

@chance Плохой совет. Вы не поняли мой вопрос. – MockerTim

+0

Не запустите свой графический интерфейс без CMD-окна, если дважды щелкните ярлык на javaw? Или невозможно создать shorcut для клиентов? – chance

ответ

6

Я вижу несколько путей:

  • Используйте пусковую, сгенерированный Launch4J (благодаря CodeBrickie для наконечника) или Install4J/Exe4J. Launch4J позволяет вам настраивать параметры, создавая файл .l4j.ini с тем же именем, что и exe. В случае Exe4J дополнительные параметры могут быть указаны в файле .vmoptions, который вы бросаете рядом с созданным exe.
  • Создайте ярлык для javaw.exe, дайте ему нужный значок, установите поле «Начать в» в каталог приложения и укажите свои параметры для javaw в поле Target.
  • Создайте скрипт VB, который запускает javaw.Если для среды исполнения VBS установлено значение wscript, консольное окно не появится.
  • Если вы используете Java Web Start, вы можете позволить пользователю настроить файл JNLP, как указано в Java Webstart with parameters.
+0

Upvote. Ярлык для javaw.exe действительно прост. – MockerTim

3

Попробуйте

start javaw -Djava.util.logging.config.file=logging.properties -jar MyGUI.jar 

Вы можете также использовать scripting:

VBS:

Const HIDDEN_WINDOW = 12 

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
Set objStartup = objWMIService.Get("Win32_ProcessStartup") 

Set objConfig = objStartup.SpawnInstance_ 
objConfig.ShowWindow = HIDDEN_WINDOW 
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process") 
errReturn = objProcess.Create("Notepad.exe", null, objConfig, intProcessID) 

JScript:

var WindowStyle_Hidden = 0 
var objShell = WScript.CreateObject("WScript.Shell") 
var result = objShell.Run("cmd.exe /c abc.bat", WindowStyle_Hidden) 

Наконец, существуют универсальные утилиты у ou может использовать для скрытия окон, таких как CMDOW и Hidden Start ($20). Я не использовал ни себя, так как start делает то же самое.

+0

Что это за коммунальные услуги? – MockerTim

+0

Примеры добавлены. –

3

Пользователь хочет, чтобы запустить приложение Java GUI ..

Лучший пользовательский опыт для конечного пользователя будет предложен запуск приложения. используя Java Web Start. JWS может устанавливать ярлыки на рабочем столе и элементы меню для запуска приложения.

..from для Windows ..

JWS также работает на OS X & * Никс.

Смежные вопросы