【问题标题】:Invoking Java main method with parameters from Eclipse使用来自 Eclipse 的参数调用 Java 主方法
【发布时间】:2010-09-27 06:19:41
【问题描述】:

在开发(和调试)期间,直接从 Eclipse 内部运行 Java 类的 public static void main(String[] argv) 方法非常有用(使用 Run As 上下文菜单) .

是否有类似的快速方法来指定运行的命令行参数? 我现在要做的是转到“运行对话框”,单击各种设置到选项卡,我可以在其中指定 VM 和程序参数并在那里输入它们。 步骤太多,而且我不想将更永久的运行时配置设置与一次性调用参数混合在一起。 我想要的是在某处选中一个框(或有一个单独的菜单项“使用命令行作为 Java 应用程序运行”),然后每次都提示输入命令行(有一个很好的历史记录)。

【问题讨论】:

  • 正如 Uri 所说,我认为这是不可能的,但它真的很酷。我也很不喜欢填写运行对话框。

标签: java eclipse main-method


【解决方案1】:

如果您的字符串参数中有空格,请执行以下操作:

运行 > 运行配置 > Java 应用程序 > 参数 > 程序参数

  1. 用引号将字符串参数括起来
  2. 用空格或换行分隔每个参数

【讨论】:

    【解决方案2】:

    此答案基于 Eclipse 3.4,但应该适用于旧版本的 Eclipse。

    选择运行时...,进入运行配置。

    在您的 Java 运行配置的 Arguments 选项卡上,配置要出现的变量 ${string_prompt}(您可以单击变量来获取它,或者复制它来直接设置它)。

    每次您使用该运行配置时(正确命名以便以后使用),系统都会提示您输入命令行参数。

    【讨论】:

      【解决方案3】:

      另一个想法:

      将所有参数放在一个属性文件中(一个参数 = 此文件中的一个属性),然后在您的 main 方法中加载此文件(使用Properties.load(*fileInputStream*))。 所以如果你想修改一个参数,你只需要编辑你的 args.properties 文件,然后启动你的应用程序,而不用做更多的步骤......

      当然,这仅用于开发目的,但如果您必须经常更改参数,这会非常有帮助...

      【讨论】:

        【解决方案4】:

        uri是错误的,在Eclipse中有一种方法可以直接给main方法添加参数,但是参数不会很灵活(允许一些动态参数)。以下是您需要做的:

        1. 按原样运行一次课程。
        2. 转到Run -> Run configurations...
        3. 从左侧列表中,从Java Application 下的列表中选择您的班级,或在过滤框中输入班级名称。
        4. 选择参数选项卡并将您的参数写入Program arguments 框。以防万一,它们是用空格分隔的,所以"a b c"(不带引号)意味着您将参数 a、b 和 c 传递给您的程序。
        5. 像第 1 步一样再次运行您的课程。

        不过,我推荐使用 JUnit/wrapper 类,就像 Uri 所说的那样,因为这样可以比这样做更好地控制实际参数。

        【讨论】:

        • 我认为 Thilo/Uri 正在谈论一种简单的方法来做到这一点而不涉及钻研“运行”对话框 - 正如他的问题所述。
        • 我不得不引用文件名参数,因为它有空格。谢谢
        【解决方案5】:

        我不确定你的用途是什么,但我发现通常我使用不超过几个命令行参数很方便,因此每个场景都有一个运行配置,我只需从运行历史记录。

        IMO,您建议的功能似乎有点矫枉过正。

        【讨论】:

          【解决方案6】:

          AFAIK 在 Eclipse 中没有为此的内置机制。

          你能得到的最接近的方法是创建一个包装器,提示你输入这些值并调用(硬编码的)main。然后,只要您不清除终止的进程,您就会获得执行历史记录。对此有两种变体,要么使用 JUNit,要么使用注入或参数,以便您的包装器始终连接到其主类的正确类。

          【讨论】:

            猜你喜欢
            • 2012-05-16
            • 2023-03-12
            • 2017-08-15
            • 1970-01-01
            • 1970-01-01
            • 2020-08-27
            • 2023-03-23
            • 1970-01-01
            • 2011-05-30
            相关资源
            最近更新 更多