【问题标题】:How to start Java GUI program conveniently for the end user如何为最终用户方便地启动 Java GUI 程序
【发布时间】:2012-01-20 06:06:57
【问题描述】:

用户想要从 Windows 启动 Java GUI 应用程序,并带有一些额外的 JVM 参数。
例如:

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

如果我将上述行添加到批处理文件中,用户可以双击批处理文件名。
这很酷。但是有一个烦人的副作用:批处理文件在启动 GUI 之前打开 cmd 窗口

有没有一种简单的方法来通过双击批处理文件(或其他适合上述需要的文件)来启动java GUI应用程序而不打开cmd 窗户?

【问题讨论】:

  • @chance 糟糕的建议。你没有理解我的问题。
  • 如果你双击javaw的快捷方式,它不会在没有cmd窗口的情况下启动你的GUI吗?还是无法为客户创建快捷方式?
  • 我的意思是你根本不需要批处理文件。只需将参数放在快捷方式中即可。
  • @我现在很清楚了。你应该从一开始就说明这一点。

标签: java windows user-interface deployment cmd


【解决方案1】:

我看到了很多方法:

  • 使用Launch4J(感谢CodeBrickie 提供的提示)或Install4J/Exe4J 生成的启动器。 Launch4J 允许您通过创建与 exe 同名的.l4j.ini 文件来调整参数。在 Exe4J 的情况下,可以在 .vmoptions 文件中指定额外的参数,您可以将该文件放在生成的 exe 旁边。
  • 创建 javaw.exe 的快捷方式,为其指定所需的图标,将“Start in”字段设置为应用程序的目录,并在 Target 字段中指定 javaw 的参数。
  • 制作一个启动 javaw 的 VB 脚本。如果 VBS 运行时设置为使用 wscript,则不会弹出控制台窗口。
  • 如果您使用 Java Web Start,您可能希望让用户按照 Java Webstart with parameters 中的指定调整 JNLP 文件。

【讨论】:

    【解决方案2】:

    试试

    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 可以安装桌面快捷方式和菜单项来启动应用程序。

      ..来自 Windows..

      JWS 也适用于 OS X 和 *nix。

      【讨论】:

        【解决方案4】:

        Lauch4j 可以将您的 jar 包装在一个 exe 文件中。

        【讨论】:

          猜你喜欢
          • 2015-09-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-07
          • 1970-01-01
          相关资源
          最近更新 更多