在java中,您可以在程序启动期间将cmd行参数传递给main()
方法。
我想将cmd行参数传递给我直接从脚本调用的特定方法。我就像main()
那样进入他们时没有运气。
示例:
public class Test {
public static void main(String[] args) { // args is cmd line input
// do stuff with args
}
}
你会这样做:~]# java Test cmdlineinput
我需要这样做:
public class Test {
public void someMethod(String input) {
// do stuff with input
}
}
我想这样做:~]# java Test.someMethod cmdlineinput
这可能吗?怎么样?
答案 0 :(得分:5)
您的程序需要一个主要的方法来运行,您必须直接或间接地将命令行参数从main方法传递到您希望它去的任何地方。我知道没有其他解决方案。
即,
public static void main(String[] args) {
Test test = new Test();
test.someMethod(args);
}
答案 1 :(得分:2)
按照惯例,JVM将查找main
并调用它。您无法直接从命令行调用方法。但是,如果对JVM使用REPL,例如Groovy和groovysh
,则可以从shell中调用方法。这可能适用于您的用例,也可能不适用。但是,它在技术上允许您单独调用Java方法并调用它们。请阅读此question。