簡體   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