您好我正在使用此代码运行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();
}
}
}
怎么做?
答案 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]
是首选的争论。