2011-12-14 29 views
5

用戶希望從Windows啓動Java GUI應用程序,並帶有一定量的其他JVM參數。
例如:如何方便地爲最終用戶啓動Java GUI程序

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

如果我添加上述行到批處理文件,用戶可以雙擊該批處理文件名。
而且很酷。但是有一個惱人的副作用:批處理文件在啓動GUI之前會打開cmd窗口。

是否存在被啓動Java GUI應用程序簡單方式雙擊該批處理文件(或符合上述要求的其他一些文件),而無需打開CMD窗口?

+0

使用Windows快捷鍵 – chance 2011-12-14 13:05:29

+0

@chance差的建議。你還沒有理解我的問題。 – MockerTim 2011-12-14 13:10:39

+0

如果雙擊javaw的快捷方式,它不會在沒有cmd窗口的情況下啓動GUI嗎?或者不可能爲客戶創建shorcut? – chance 2011-12-14 13:25:31

回答

6

我看到許多方式:

  • Launch4J(感謝CodeBrickie的尖端)或Install4J/Exe4J作爲生成使用發射器。 Launch4J允許您通過創建一個與exe具有相同名稱的.l4j.ini文件來調整參數。在Exe4J的情況下,可以在.vmoptions文件中指定額外的參數,該文件將放在生成的exe旁邊。
  • 爲javaw.exe創建一個快捷方式,爲其指定所需的圖標,將「開始」字段設置爲該應用程序的目錄,並在目標字段中將參數指定給javaw。
  • 製作啓動javaw的VB腳本。如果VBS運行時設置爲使用wscript,則不會彈出控制檯窗口。
  • 如果您使用Java Web Start,則可能需要讓用戶調整Java Webstart with parameters中指定的JNLP文件。
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) 

最後,還有通用的事業ÿ您可以使用隱藏窗口,如CMDOWHidden Start ($20)。我自己也沒有用過,因爲start做同樣的事情。

3

用戶想要啓動Java GUI應用程序..

爲最終用戶提供最佳用戶體驗將啓動應用程序提供。使用Java Web Start。 JWS可以安裝桌面快捷方式和菜單項來啓動應用程序。

..from的Windows ..

JWS也適用於OS X & * nix中。

相關問題