33

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

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

4

6 回答 6

51

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

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

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

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

于 2008-12-17T14:47:17.337 回答
16

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 所说的那样,因为这样可以比这样做更好地控制实际参数。

于 2008-12-17T10:54:44.077 回答
3

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

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

  1. 用引号将您的字符串参数括起来
  2. 用空格或换行分隔每个参数
于 2018-04-10T20:52:58.067 回答
2

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

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

于 2008-12-17T01:01:05.803 回答
1

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

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

于 2008-12-17T10:30:19.540 回答
0

另一个想法:

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

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

于 2008-12-17T11:21:24.943 回答