【发布时间】:2017-01-16 07:01:06
【问题描述】:
我现在正在执行 java 一个这样的 java 程序:
package com.test;
public class Test {
public static void main(String[] args){
execute();
}
public static String execute(){
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "a";
}
}
我想在 linux shell 脚本中执行 Test.execute() 方法,等到方法返回并获取返回码。但是 main() 方法的返回是 void ,那我该怎么做才能从中获取返回码或返回 msg 呢?
有什么建议吗?
我找到了解决办法:
package com.test;
public class Test {
public static void main(String[] args){
execute();
}
public static String execute(){
try {
System.out.println("sleeping");;
Thread.sleep(5000);
Runtime.getRuntime().exit(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "a";
}
}
然后是我的外壳:
#!/bin/bash
java -cp test.jar com.test.Test
echo "The return code of the java application is $?"
我可以得到Runtime.getRuntime().exit(n)中的值n;
【问题讨论】:
-
你卡在哪一部分了?
-
什么“返回码”?您没有在上面设置任何内容。
-
什么外壳?重击? Windows cmd?
-
通常调用
System.exit()而不是Runtime.getRunTime().exit()请查看此处的文档docs.oracle.com/javase/8/docs/api/java/lang/…。
标签: java shell return-value