如何在java中传递参数

时间:2013-06-03 12:27:16

标签: java

您好我正在使用此代码运行shell脚本。我想在运行程序时传递参数“trng-java”。就像这样

like java Classname trng-java

代码:

import java.io.*;

public class Test
{


public static void main(String[] args)
{
    try {
        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec(new String[]{"/bin/sh", "/tmp/test.sh", "trng-java"});

        BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
        String line = "";
        while ((line = input.readLine()) != null) {
            System.out.println(line);
        }
    } 
    catch (Exception e) {
        System.out.println(e.toString());
        e.printStackTrace();
    }
}
}

怎么做?

6 个答案:

答案 0 :(得分:5)

您传入的参数将在args参数中找到,字符串为yourParam = args [0]

答案 1 :(得分:3)

命令行参数在String []参数args中传递给您的应用程序,因此您应该能够使用args[0]访问该值。

Process pr = rt.exec(new String[]{"/bin/sh", "/tmp/test.sh", args[0] });

答案 2 :(得分:2)

Process pr = rt.exec(new String[]{"/bin/sh", "/tmp/test.sh", args[0]});

当然,您还需要检查args是否包含至少一个参数

答案 3 :(得分:2)

将参数传递给java应用程序时,可以通过main中的args[]数组访问它们。

请参阅:http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html 我引用

  

回应命令行参数

     

Echo示例在一行上显示其每个命令行参数   本身:

public class Echo {
    public static void main (String[] args) {
        for (String s: args) {
            System.out.println(s);
        }
    }
}
     

以下示例显示用户如何运行Echo。用户输入是   用斜体字。

java Echo Drink Hot Java
Drink
Hot
Java
     

解析数字命令行参数

     

如果应用程序需要支持数字命令行参数,那么   必须转换表示数字的String参数,例如“34”,   到数值。这是一个转换a的代码段   int的命令行参数:

int firstArg;
if (args.length > 0) {
    try {
        firstArg = Integer.parseInt(args[0]);
    } catch (NumberFormatException e) {
        System.err.println("Argument" + " must be an integer");
        System.exit(1);
    }
}

答案 4 :(得分:0)

只需将参数添加到命令中,如下所示:

rt.exec("/bin/sh /tmp/test.sh trng-java");

答案 5 :(得分:0)

public static void main(String[] args)中args参数是争论。如果您使用多个争论,如

java Classname a b c

然后在你的main方法中,args将是一个包含a,b,c

的数组

如果这是您想要的,那么args[0]是首选的争论。