如何使用Java从另一个类获取命令行参数
所以假设我有一个Java包…
它具有main方法和main方法
然后还有很多其他的类.....
我的问题是,是否有可能从其他不属于主类但位于同一包中的其他类中获取传递给main方法的args …
-
不,不是可移植的,基于JVM的实现可能会有一些诡计,但我从未见过,即使依赖它,这也是一个非常糟糕的主意。
如果要将这些值放在其他位置,则该
main
函数需要以某种方式使它们可用。
一个简单的方法(不一定是 最好的 方法)是将字符串作为第一件事简单地存储起来,
main
并提供一种获取它们的方法:Scratch2.java:
public class Scratch2 { // Arguments and accessor for them. private static String[] savedArgs; public static String[] getArgs() { return savedArgs; } public static void main(String[] args) { // Save them away for later. savedArgs = args; // Test that other classes can get them. CmdLineArgs cla = new CmdLineArgs(); cla.printArgs(); } }
CmdLineArgs.java:
public class CmdLineArgs { public void printArgs() { String[] args = Scratch2.getArgs(); System.out.println ("Arg count is [" + args.length + "]"); for (int i = 0; i < args.length; i++) { System.out.println ("Arg[" + i + "] is [" + args[i] + "]"); } } }
并且,当使用参数运行时
a b c
,输出:Arg count is [3] Arg[0] is [a] Arg[1] is [b] Arg[2] is [c]