【问题标题】:Netbeans how to set command line arguments in JavaNetbeans如何在Java中设置命令行参数
【发布时间】:2012-02-28 10:31:19
【问题描述】:

我正在尝试在 Windows 7 64 位上的 Netbeans 7.1 Java 项目中设置命令行参数。

Netbeans 没有传递我给它的参数。

我转到Project --> Properties --> Run --> 并在“参数”旁边输入参数,但参数不会传递给程序。我如何通过它们?

【问题讨论】:

  • 请出示您的主要课程。您使用的是 NetBeans 创建的 build.xml 还是您自己的 build.xml?
  • 您确定要编辑运行项目时使用的运行配置吗?确保在工具栏的下拉菜单中选择正确的配置
  • 如果您希望它适用于单个文件.. 调用其他类中的 main MainProgram.main(new String[]{"arg0","arg1"});

标签: java netbeans arguments


【解决方案1】:
import java.io.*;
class Main
{
public static void main(String args[]) throws IOException
{
    int n1,n2,n3,l;
    n1=Integer.parseInt(args[0]);
    n2=Integer.parseInt(args[1]);
    n3=Integer.parseInt(args[2]);
    
    if(n1>n2)
    {
        l=n1;
    }
    else
    {
        l=n2;
    }
    
    if(l<n3)
    {
        System.out.println("largest no is "+n3);
    }
    else
    {
        System.out.println("largest no is "+l);
    }
    
}}

考虑上面的程序,在这个程序中,我想从命令行传递 3 个否,这样做。

第1步:右击杯子和碟子图标,你会看到这个窗口

第 2 步:点击属性

第 3 步:单击运行 _> 参数 _> 键入三个不,例如。 32 98 16 然后单击确定。请在两个参数之间添加空格。看这里

第 4 步:使用 F6 运行程序。

【讨论】:

    【解决方案2】:

    这对我有用,使用 NetBeans 中的 VM 参数:

    @Value("${a.b.c:#{abc}}"
    ...
    
    @Value("${e.f.g:#{efg}}"
    ...
    

    Netbeans:

    -Da.b.c="..." -De.f.g="..."
    

    属性 -> 运行 -> 虚拟机选项 -> -De.f.g=efg -Da.b.c=abc

    从命令行

    java -jar <yourjar> --Da.b.c="abc" 
    

    【讨论】:

      【解决方案3】:

      请注意,从 Netbeans 8 开始,项目属性中没有运行面板。

      要做你想做的事,我只需在我的项目属性文件中添加以下行(例如设置区域设置):

      run.args.extra=--locale fr:FR
      

      【讨论】:

        【解决方案4】:
        1. 创建可以接收参数作为命令行参数的 Java 代码。

          class TestCode{
              public static void main(String args[]){
                  System.out.println("first argument is: "+args[0]);
              }
          }
          
        2. 不带参数运行程序(按F6)。

        3. 在“输出”窗口底部,单击黄色双箭头(或黄色按钮)以打开 运行 对话框。

        4. 如果您需要传递的参数是testArgument,那么在此窗口中将参数传递为application.args=testArgument

        这将在同一输出窗口中给出如下输出:

        first argument is: testArgument
        

        对于 Maven,说明类似,但改为更改 exec.args 属性:

        exec.args=-classpath %classpath package.ClassName PARAM1 PARAM2 PARAM3
        

        注意:包含空格的字符串参数使用单引号。

        【讨论】:

        • 如果我在单击黄色按钮后插入 application.args=testArgument,那么,一旦我在该窗口上单击运行,就会收到以下错误:Target" application.args=9" 在项目“{0} (run)”中不存在 - 我现在输入了 9,但我作为参数输入的内容与错误无关...跨度>
        • 只是想知道,在我的 NetBeans 11.3 上,如果禁用“保存时编译”选项,则“application.args”属性不起作用
        【解决方案5】:

        要将参数传递给运行项目命令,您必须在项目属性运行面板中设置参数

        【讨论】:

          【解决方案6】:

          对于使用 NetBeans 8.x 的 Maven 项目:

          1. 点击运行>>设置项目配置>>自定义
          2. 选择操作
          3. 选择通过main()运行文件
          4. 设置名称/值对以包含参数。
          5. 点击确定

          一个示例名称/值对可能类似于:

          javax.persistence.jdbc.password=PASSWORD
          

          然后运行你的项目:

          1. 打开并关注包含main(...) 的Java 类。
          2. F6 运行程序。

          命令行参数应该出现在运行窗口中。

          注意,要通过程序获取值形式,请使用System.getProperty()

          测试文件运行项目的其他操作以及运行应用程序的其他方式可以定义参数。对不同的操作重复上述步骤以完成此任务。

          【讨论】:

          • 如果设置项目配置显示为灰色怎么办? Grails 项目。
          • System.getProperty()获取的环境变量与“命令行参数”不是一回事。如果您需要在main(String[] args) 中提供数组args 所见的参数,则有必要编辑Maven 变量exec.args “Leif Gruenwoldt”的答案显示了一种方法。
          【解决方案7】:

          如果它是一个 Maven 项目,那么 Netbeans 正在使用 exec-maven-plugin 运行您的应用程序,因此您需要将您的选项附加到 中现有的 exec.args 属性上运行 Maven 对话框。可以通过按黄色双箭头图标从 输出 窗口访问此对话框。

          【讨论】:

          • 这是我为 NetBeans Maven 项目找到的最简单的方法!当该对话框打开时,我不会显示“记住为”部分和其他选项。我必须在它们变得可见之前调整对话框的大小。即使我使用了“Remember as 'foo'”,我也不知道如何重新运行该配置。我不知道它在哪里被“记住”了。
          【解决方案8】:

          在 NetBeans IDE 8.0 中,您可以使用社区贡献的插件 https://github.com/tusharvjoshi/nbrunwithargs,它允许您在运行项目或运行单个文件命令时传递参数。

          为了将参数传递给运行项目命令,您必须在项目属性运行面板中设置参数,或者使用安装插件后可用的新命令,即使用参数运行

          要将命令行参数传递给具有 main 方法的 Java 文件,只需右键单击该方法并选择此插件的 Run with Arguments 命令

          更新(2014 年 3 月 24 日)此插件现已在 NetBeans 插件门户中提供,这意味着它可以从 NetBeans IDE 8.0 中社区贡献插件中显示的可用插件对话框中安装它

          【讨论】:

          • 对我不起作用..它说找不到主类
          • 不适用于 Maven 项目 - 请参阅bug report
          • 哦,是的,这个插件是为基于 Ant 的 Java 项目创建的。我将修改它以不在 Maven 项目中显示 NPE。该插件需要 Maven 项目的附加功能,该插件对拉取请求和社区为此功能提供的任何帮助开放
          【解决方案9】:

          如果您使用的是 MyEclipse,并且想在运行程序之前添加 args,则执行以下操作: 1.0) 运行 -> 运行配置 2.1) 单击右侧面板上的“参数” 2.2)在“程序参数”框中添加你的参数,用空格分隔

          【讨论】:

            【解决方案10】:

            我猜您正在使用 Run | Run File(或 shift-F6)而不是 Run | Run Main Project 运行文件。 NetBeans 7.1 帮助文件(F1 是您的朋友!)Arguments 参数的状态:

            添加参数以在应用程序执行期间传递给主类。 请注意,参数不能传递给单个文件。

            我用一点 sn-p 代码验证了这一点:

            public class Junk
            {
                public static void main(String[] args)
                {
                    for (String s : args)
                        System.out.println("arg -> " + s);
                }
            }
            

            我将 Run -> Arguments 设置为 x y z。当我自己运行文件时,我没有得到任何输出。当我运行项目时,输出是:

            arg -> x
            arg -> y
            arg -> z
            

            【讨论】:

            • 我们现在甚至可以使用社区贡献的 NetBeans IDE 8.0 插件将命令行参数传递给单个 Java 文件 github.com/tusharvjoshi/nbrunwithargs
            • 哦,是的,这个插件是为基于 Ant 的 Java 项目创建的。我将修改它以不在 Maven 项目中显示 NPE。该插件需要 Maven 项目的附加功能,该插件对拉取请求和社区为此功能提供的任何帮助开放
            • 如果有机会,我会看看如何让它与 Gradle 项目一起工作,尽管 Gradle 本身需要一个插件,所以不确定是否可行。
            猜你喜欢
            • 2011-03-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-06-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多