Netbeans如何在Java中设置命令行参数

Netbeans如何在Java中设置命令行参数,java,netbeans,arguments,Java,Netbeans,Arguments,我试图在64位Windows 7上的Netbeans 7.1 Java项目中设置命令行参数 Netbeans没有传递我给它的参数 我转到Project-->Properties-->Run-->并在“arguments”旁边键入参数,但这些参数不会传递给程序。如何传递它们?我猜您正在使用Run | Run file(或shift-F6)而不是Run | Run Main Project运行文件。NetBeans 7.1帮助文件(F1是您的朋友!)为Arguments参数声明: 在应用程序执行期间

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

Netbeans没有传递我给它的参数


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

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

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

我用一段代码验证了这一点:

public class Junk
{
    public static void main(String[] args)
    {
        for (String s : args)
            System.out.println("arg -> " + s);
    }
}
我将Run->Arguments设置为
xyz
。当我单独运行文件时,没有得到任何输出。当我运行项目时,输出是:

arg -> x
arg -> y
arg -> z
  • 创建可以接收作为命令行参数的参数的Java代码

    类测试代码{
    公共静态void main(字符串参数[]){
    System.out.println(“第一个参数是:“+args[0]);
    }
    }
    
  • 运行不带参数的程序(按F6)

  • 在“输出”窗口的底部,单击双黄色箭头(或黄色按钮)打开一个运行对话框

  • 如果需要传递的参数是
    testArgument
    ,则在此窗口中,将该参数作为
    application.args=testArgument
    传递

  • 这将在同一输出窗口中提供如下输出:

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

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

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

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

  • 单击运行>>设置项目配置>>自定义
  • 选择动作
  • 选择通过main()运行文件
  • 将名称/值对设置为包含参数
  • 单击确定
  • 示例名称/值对可能类似于:

    javax.persistence.jdbc.password=PASSWORD
    
    然后运行您的项目:

  • 打开并聚焦包含
    main(…)
    的Java类
  • 按F6运行程序
  • 命令行参数应显示在“运行”窗口中

    请注意,要使用程序获取值形式,请使用


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

    如果您正在使用MyEclipse并希望在运行程序之前添加参数,请执行以下操作: 1.0)运行->运行配置 2.1)单击右侧面板上的“参数”
    2.2)在“程序参数”框中添加参数,在NetBeans IDE 8.0中用空格分隔。您可以使用社区提供的插件,该插件允许您在运行Project或运行单文件命令时传递参数


    要传递参数以运行项目命令,您必须在“项目属性”“运行”面板中设置参数,或者在安装插件后使用新命令,该插件显示“使用参数运行”

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

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


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

    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);
        }
        
    }}
    
    导入java.io.*;
    班长
    {
    公共静态void main(字符串args[])引发IOException
    {
    int n1、n2、n3、l;
    n1=整数.parseInt(args[0]);
    n2=整数.parseInt(args[1]);
    n3=整数.parseInt(args[2]);
    如果(n1>n2)
    {
    l=n1;
    }
    其他的
    {
    l=n2;
    }
    如果(l)个参数u>键入三个否,例如。
    32  98  16
    然后单击OK。请在两个参数之间添加空格。请参见此处


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

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

    注意,在Netbeans 8中,项目属性中没有运行面板

    要执行所需操作,我只需在项目的属性文件中添加以下行(设置区域设置的示例):

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

    这对我很有效,请在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" 
    
    java-jar--Da.b.c=“abc”
    
    请显示您的主类。您使用的是NetBeans创建的build.xml还是您自己的build.xml?您确定正在编辑运行项目时使用的运行配置吗?如果您希望在单个文件中使用,请确保在工具栏的下拉列表中选择正确的配置。.在其他一些类中调用主类
    MainProgram.main(新字符串[]{“arg0”,“arg1”})
    现在,我们可以使用社区贡献的NetBeans IDE 8.0插件将命令行参数传递到单个Java文件。哦,是的,这个插件是为基于Ant的Java项目创建的。我将修改它,使其在Maven项目中不显示NPE。这个插件需要Maven项目的其他功能,该插件是为pull-req打开的uests和社区为此功能提供的任何帮助如果我有机会,我会看看如何使它与Gradle项目一起工作,尽管Gradle本身需要一个插件,所以不确定这是否正确