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

如何使用cmd中的多个类运行java程序?,java,cmd,Java,Cmd,目前,我正在寻找从命令行运行Java程序的另一种方法,而不是将其添加到JAR文件中。我的程序有以下数量的类: 程序文件的名称-MyProgram 主类-服务器1 第二类-客户端处理程序 包装名称-项目 第三类-用户1 第四类-用户2 为了让用户1和用户2运行,包旁边的主类和客户机处理程序必须首先运行,因为它们是客户机类,并且依赖于主类。听起来您只需要打开多个命令提示,并按照需要的顺序编译和运行它们。如果我误解了这个问题,请告诉我 javac *.java // compliles all jav

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

程序文件的名称-MyProgram
主类-服务器1
第二类-客户端处理程序
包装名称-项目
第三类-用户1
第四类-用户2


为了让用户1和用户2运行,包旁边的主类和客户机处理程序必须首先运行,因为它们是客户机类,并且依赖于主类。

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

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

java MyClass // runs the particular file
如果一个类依赖于另一个尚未编译的类,程序将不会运行。因此,在尝试运行依赖于其他文件的程序之前,应该编译所有文件

如果您的文件已打包,则

javac com.mypackage/.*java

java com.mypackage.MyClass

编译代码后,从顶层运行:

java -cp . com.myprogram.MyProgram

你所描述的那种秩序并不重要。它们都被编译在一起,并且<代码> MyStudio将引用<代码> Server 1>代码>等

,您可能更想马上处理,但您可能需要考虑一个构建系统。开始试验


您可以使用它预定义构建顺序,如果您想让它为您创建一个jar(或不创建)。

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

javac -cp . PackageName/*.java
java -cp . PackageName/ClassName_Having_main
示例。假设您有以下内容

  • 名为com.test的包

  • 类名:你好(有主)

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

然后,从外部目录:

$ cd src
$ javac -cp . com/test/*.java
$ java -cp . com/test/Hello
注意,您可以在编译时添加-d来指定类文件的输出目录

$ javac -d output_directory -cp . com/test/Hello
在windows中,同样的事情也会起作用,我已经尝试过了


从Oracle官方网站签出以执行两个相互依赖的JAVA程序。 (例如:两个文件Complex.java和Solution.java,其中Soultion.java依赖于Complex.java。 所以应该先编译Complex.java,然后Complex的类文件必须与Solution.java链接,然后执行Solution.class进行输出。) 使用语法引用图像

步骤1:

编译Complex.java 编译Complex.java

语法- javac-d[path_where_class_File_build][path_of the_File\filename.java]

(Solution.java和Complex.java是链接的。ie-Solution.java调用Complex.java)

步骤2:

编译Solution.java 使用链接Complex.class编译Solution.java 链接Complex.class(在步骤1中创建)

语法- javac-d[path_where_class_File_build]-cp[path_of_the_first_class_created][path_of_the_File\filename.java]]

步骤3:

执行Solution.class java-cp[创建第二个类的路径][类名称]

(在步骤3中创建)

您的方法有问题吗?你的构建目录在你的类路径上吗?老实说,我一直都在这样做,即使只编译一个文件,因为*.java比file.java短。在我偶然发现上面的内容之前,我浪费了三个小时。我在不同的文件中编写了不同的类文件,并将它们放在同一个目录中进行编译。编译成功。程序运行。