我正在尝试从命令行运行Loader.java
中的以下方法:
public static void method(String path, String word)
如上所述,我必须传入变量path
和word
,并且我希望命令行在方法中显示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");
}
}
发布于 2020-06-16 05:07:03
只需执行以下操作:
javac Loader.java
java Loader
事实上,如果您是Java-11或更高版本,您甚至不需要使用第一个命令,即您可以直接使用以下命令:
java Loader.java
但是,如果您希望创建一个jar文件并从中执行类,请执行下面给出的步骤:
mkdir demo
cd demo
现在在此文件夹中创建/放置Loader.java
。然后,
javac *.java
jar -cvf loader.jar .
java -cp loader.jar Loader
请注意,我使用了一个新目录demo
来说明这一点,但这并不是必需的。您应该注意的另一件事是jar
命令末尾的.
,它指定了当前目录。
如何处理命令行参数?
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);
}
}
输出将是
Path: my/path
Word: my_word
https://stackoverflow.com/questions/62396894
复制相似问题