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