[英]How to access and/or read command line arguments from a separate file inside the run method of a thread (java socket programming)
[英]How to run Java method with arguments from command line?
我正在嘗試從命令行在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");
}
}
只需執行以下操作:
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
命令的末尾指定當前目錄。
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.