【问题标题】:Java - How to enter runtime arguments (of main method) by double-clicking a jar file?Java - 如何通过双击 jar 文件输入运行时参数(主方法)?
【发布时间】:2011-01-21 08:41:51
【问题描述】:

我多次遇到这个问题。如果我将 Java 应用程序打包到一个可执行 jar 文件中,该文件从用户那里获取参数,那么用户必须通过以下命令从命令提示符调用程序(jar 文件):

java -jar "jar-file-name.jar"

但我希望每当用户双击可执行 jar 文件(需要用户提供参数)时,如果我们从命令提示符调用 jar 文件,就会出现一个窗口(命令提示符窗口) .

我知道一个解决方案是使用批处理文件.bat 来运行 jar 文件。有没有其他解决办法?

【问题讨论】:

  • 切换到 GUI 应用程序会弹出一个参数屏幕?
  • @Fakrudeen:请只建议那些与问题相关的答案......我不是在问如何从用户那里获得输入......我问的是一个关注的问题一件特别的事情......所以在回答之前先仔细阅读这个问题......
  • 请检查您在门口的态度......这个网站上的人们正在自愿抽出时间来帮助您。也许答案和建议并不是你想要的,但也许它们会给你一个你自己没有想到的想法……毕竟这就是你来这里的原因,对吧?

标签: java


【解决方案1】:

解释原因:

有 2 个 java JVM exe 启动器:

  • java.exe:基于控制台 - 提供控制台输入/输出。
  • javaw.exe:用于 GUI 应用程序 - 隐藏控制台。

JAR 文件扩展名默认与 javaw.exe 相关联,这就是为什么双击它们时看不到控制台的原因。

其他人给出的答案,并添加我自己的:

  • 重写您的应用程序,使其使用 Java GUI 项而不是 System.in/System.out 进行输入和输出。对于您的要求,这可能过于复杂。

  • 您提到创建批处理文件以便运行基于控制台的 Java JVM (java.exe),您还可以创建一个指定命令行的 Windows 快捷方式:java -jar jar-file-name.jar

  • 您可以更改 .jar 的 Windows 文件关联(但通常这是一个坏主意 - 新的 Java 安装可能会重置它,这意味着所有从 jar 运行的 Java 应用程序都将有一个控制台)

  • 1234563任何其他 JVM 和命令行参数)

我个人选择了项目中的最后一个选项——我使我的 jar 文件不可执行,用户必须双击 EXE。它还允许我为我的项目指定一个漂亮的图标,并在启动时提供多个选项(调试/非调试模式),只需使用不同的 exe/config 文件。

【讨论】:

    【解决方案2】:

    您需要将“.jar”的资源管理器关联重新分配给 java.exe 而不是 javaw.exe。这有点值得怀疑——创建控制台输出窗口可能更有意义。当然,如果命令行中没有提供所需的执行参数,您当然可以简单地弹出一个对话框供用户输入所需的执行参数。

    有控制台输出 JTextArea here 的工作代码。

    【讨论】:

    • 请注意,用户需要控制台输入,也可能需要控制台输出。
    • @Panda:是的,从问题中并没有立即明确。
    • 明确表示我希望我的用户输入运行时参数...我认为问题中没有任何不清楚的地方...
    【解决方案3】:

    这是一个操作系统功能。

    如果你想要完全控制,那么你必须在你的程序中提供这个功能(或者使用一个包装类。

    【讨论】:

      猜你喜欢
      • 2012-02-04
      • 2017-02-14
      • 2012-01-20
      • 2016-02-19
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2023-02-02
      • 2016-01-27
      相关资源
      最近更新 更多