如何在 cmd 上从我的 java 程序执行特定方法?

How to execute a specific method from my java program on cmd?

我有一个 java 程序定义如下:

public class MyClass{    
   public String getPathBetween(String path,String folderName,String extension){..}
   public static void main(String[] args) throws Exception{...}
}

使用以下命令编译程序后:

$ javac MyClass.java

我可以 运行 像这样的主要方法 :

$java我的班级

但是我如何 运行 getPathBetween 方法?

我试过了,但没有用:

$ java MyClass.getPathBetween("some text", "some","text")

您需要调用 main 中的方法。程序的入口点总是main.

//You can create an instance of MyClass in your main() method
// and then call getPathBetween():
public class MyClass{    
   public String getPathBetween(String path, String folderName, String extension){..}
   public static void main(String[] args) throws Exception{
      MyClass myClassInstance = new MyClass();
      String path = "/some/path/value";
      String folder = "my-test-folder";
      String extension = "xyz";
      String pathBetween = myClassInstance.getPathBetween(path, folder, extension);
      System.out.println("pathBetween=" + pathBetween);
   }
}

或者,如果您希望能够从命令行将值传递到 getPathBetween(),您可以将代码更改为:

public class MyClass{    
   public String getPathBetween(String path, String folderName, String extension){..}
  public static void main(String[] args) throws Exception{
     MyClass myClassInstance = new MyClass();
     String path = args[0];
     String folder = args[1];
     String extension = args[2];
     String pathBetween = myClassInstance.getPathBetween(path, folder, extension);
     System.out.println("pathBetween=" + pathBetween);
  }
}

然后运行像这样:

java MyClass "some text" "some" "text"

中所述,方法名称 main 始终是在命令行(控制台)中执行的 Java 应用程序的入口点。

用户可以传递参数

中所述,用户可以在 command-line 上调用您的 Java 应用程序时传递参数。

参见 Oracle 提供的this tutorial

通过提示和菜单与用户互动

您还可以在命令行上与用户交互。使用 System.out 打印说明和菜单选项以供用户阅读。使用 Scanner 对象来接收和解析用户在命令行上键入的输入。

请参阅 Oracle 的本教程,I/O from the Command Line

搜索 Stack Overflow 可以找到很多例子。这种方法经常用于入门 Java 学生的教程和教科书中。

REPL

您可能对 REPL bundled with Java, JShell.

感兴趣

使用 JShell,您可以键入 Java 代码以立即执行。如果你的class,你可以实例化一个对象。您可以对该对象调用方法。