如何使用cmd中的多个类运行java程序?

use*_*068 10 java cmd

目前我正在寻找另一种从命令行运行我的Java程序的方法,而不是将其添加到JAR文件中.我的程序有以下几个类:

程序文件的名称 - MyProgram
Main class - Server1
第二类 - Client Handler
包名 - Items
第3类 - User1
第4类 - User2

包中的主类和客户端处理程序必须首先运行才能运行用户1和用户2,因为它们是客户端类并且依赖于主类.

Pau*_*tha 19

javac *.java // compliles all java files in the dir

java MyClass // runs the particular file
Run Code Online (Sandbox Code Playgroud)

如果一个类依赖于尚未编译的另一个类,则该程序将不会运行.所以你应该在尝试运行依赖于其他文件的程序之前编译所有文件.

如果您的文件是打包的,那么就是这样的

javac com.mypackage/.*java

java com.mypackage.MyClass
Run Code Online (Sandbox Code Playgroud)

  • 说实话,我一直这样做,即使只编译1个文件,因为*.java比file.java短 (3认同)

Muh*_*man 10

您必须确保将 .class 文件的位置添加到类路径中。因此,如果它在当前文件夹中,则添加 . 到您的类路径。请注意,windows 类路径分隔符是一个分号 ie ;

javac -cp . PackageName/*.java
java -cp . PackageName/ClassName_Having_main
Run Code Online (Sandbox Code Playgroud)

例子。假设你有以下

  • 包名称:com.test

  • 班级名称:你好(有主)

  • Java 文件位于“src/com/test/Hello.java”中

然后,从外部目录:

$ cd src
$ javac -cp . com/test/*.java
$ java -cp . com/test/Hello
Run Code Online (Sandbox Code Playgroud)

请注意,您可以在编译时添加 -d 以指定类文件的输出目录

$ javac -d output_directory -cp . com/test/Hello
Run Code Online (Sandbox Code Playgroud)

在 Windows 中,同样的事情也会起作用,我已经尝试过了

从 Oracle 官方网站查看此内容


Vid*_*dya 6

一旦你编译了你的代码,你就可以从顶层运行它:

java -cp . com.myprogram.MyProgram
Run Code Online (Sandbox Code Playgroud)

你描述的那个顺序无关紧要。它们都被编译在一起,MyProgram并将引用Server1等。


小智 1

听起来您只需要打开多个命令提示符并按照您需要的运行顺序编译和运行它们。如果我误解了问题,请告诉我。