如何从cmd运行带有多个类的java程序?

b5lpy0ml  于 2021-06-29  发布在  Java
关注(0)|答案(6)|浏览(533)

目前,我正在寻找从命令行运行java程序的另一种方法,而不是将其添加到jar文件中。我的程序有以下数量的类:
程序文件的名称-myprogram
主类-server1
第二类-客户端处理程序
包名称-项
第三类-用户1
第4级-用户2
为了让用户1和用户2运行,包旁边的主类和客户机处理程序必须首先运行,因为它们是客户机类并且依赖于主类。

zte4gxcn

zte4gxcn1#

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

java MyClass // runs the particular file

如果一个类依赖于另一个尚未编译的类,程序将不会运行。因此,在运行依赖于其他文件的程序之前,应该编译所有文件。
如果你的文件是打包的,那么

javac com.mypackage/.*java

java com.mypackage.MyClass
ny6fqffe

ny6fqffe2#

执行两个相互依赖的java程序(为了example:two files complex.java和solution.java,其中soultion.java依赖于complex.java。所以应该先编译complex.java,然后complex的类文件必须链接到solution.java,然后执行solution.class输出。)请参考图片中的语法。
第一步:

编译complex.java

编译complex.java
语法-javac-d[path \u where \u class \u file \u build][path \u of \u the \u file\filename.java]
(solution.java和complex.java是链接的。ie-solution.java调用complex.java)
第二步:

编译solution.java

使用链接complex.class和链接complex.class编译solution.java(在步骤1中创建)
语法-javac-d[path \u where \u class \u file \u build]-cp[path \u of \u the \u first \u class \u created][path \u of \u the \u file\filename.java]]
第三步:

执行solution.class

java-cp[创建的第二个类的路径][类名称]
(在步骤3中创建)

xmjla07d

xmjla07d3#

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

java -cp . com.myprogram.MyProgram

你所描述的顺序无关紧要。它们都被汇编在一起 MyProgram 遗嘱参考 Server1 等等。

shstlldc

shstlldc4#

它可能比您现在想要处理的要多,但是您可能需要考虑像maven这样的构建系统。开始试验;如何创建我的第一个maven项目?
您可以使用它来预定义构建顺序,如果您想让它为您创建一个jar(或者不创建)。

byqmnocz

byqmnocz5#

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

javac -cp . PackageName/*.java
java -cp . PackageName/ClassName_Having_main

例子。假设你有以下几点
名为:com.test的包
类名:hello(having main)
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中,同样的东西也会起作用,我已经试过了
从甲骨文官方网站查看

xv8emn3q

xv8emn3q6#

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

相关问题