繁体   English   中英

如何从命令行使用 arguments 运行 Java 方法?

[英]How to run Java method with arguments from command line?

我正在尝试从命令行在Loader.java中运行以下方法:

public static void method(String path, String word)

如上所示,我必须传入变量pathword ,并且我希望命令行在方法中显示System.out.println()

我可以运行什么命令来做到这一点?

注意:当我运行以下命令时,

javac *.java
jar -cvf Loader.jar Loader.class
java -cp ./Loader.jar Loader

我收到以下错误:

Caused by: java.lang.NoClassDefFoundError: path/to/Loader (wrong name: Loader)

我必须怎么做才能从命令行成功运行method

这是Loader.java的最低可重现版本:

public class Loader {
     public static void main(String[] args) {
          method("my/path", "my_word");
     }
     public static void method(String path, String word) {
          System.out.println("Output after doing something");
     }
}

只需执行以下操作:

javac Loader.java
java Loader

事实上,如果你是Java-11或以上,你甚至不需要使用第一个命令,你可以直接使用以下命令:

java Loader.java

但是,如果要创建 jar 文件并从中执行 class,请执行以下步骤:

mkdir demo
cd demo

现在在此文件夹中创建/放置Loader.java 然后,

javac *.java
jar -cvf loader.jar .
java -cp loader.jar Loader

请注意,我使用了一个新目录demo来说明清楚,但这不是必需的。 您应该注意的另一件事是. jar命令的末尾指定当前目录。

如何处理命令行 arguments?

main中的String[] args参数存储命令行中的所有参数,例如,如果您将以下程序作为java Loader my/path my_word从命令行运行,

public class Loader {
    public static void main(String[] args) {
        if (args.length >= 2) {
            method(args[0], args[1]);
        } else {
            System.out.println("Command line parameters are missing");
        }
    }

    public static void method(String path, String word) {
        System.out.println("Path: " + path);
        System.out.println("Word: " + word);
    }
}

output 将是

Path: my/path
Word: my_word

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM