除了作为main的参数之外,有没有办法访问args数组中的参数?我正在修补java中的Disgruntled Bomb,我希望能够获得cli参数,并以随机顺序或类似的方式调用main函数。
public class Bomb{
static {
main(new String[]{"arg"});
System.exit(0);
}
public static void main(String[] args){
for(int i = 0; i < args.length; i++){
System.out.printf("arg %d: %s%n",i,args[i]);
}
}
}
答案 0 :(得分:4)
在Sun的JDK上,您可以访问sun.java.command
属性:
String args = System.getProperty("sun.java.command");
但是,您必须自己拆分参数,并且它对其他JVM也不是很容易移植。
答案 1 :(得分:1)
我不知道你是否在寻找它,但Apache CLI(命令行界面)允许你以“旧的”Unix方式传递参数
-nameOfArgument1 valueOfArgument1 -nameOfArgument2 valueOfArgument2....
答案 2 :(得分:0)
只需在另一个类中实现一个main方法,然后用它来调用你需要的随机化的原始main?或者呼叫需要完全相同吗?在那种情况下,你将如何停止对自己的主调用?