目前我正在寻找另一种从命令行运行Java程序的方法,而不是将其添加到JAR文件中。我的课程有以下课程数量:
程序文件的名称 - MyProgram
主类 - Server1
第二类 - 客户端处理程序
包名 - 项目
第3类 - 用户1
第4课 - User2
主要类和客户端处理程序必须首先运行以便用户1和...用户2要运行,因为它们是客户端类并且依赖于主类。
答案 0 :(得分:14)
javac *.java // compliles all java files in the dir
java MyClass // runs the particular file
如果一个类依赖于尚未编译的另一个类,则该程序将无法运行。所以你应该在尝试运行依赖于其他文件的程序之前编译所有文件。
如果你的文件是打包的,那就是这样的
javac com.mypackage/.*java
java com.mypackage.MyClass
答案 1 :(得分:3)
编译完代码后,再从顶层运行:
java -cp . com.myprogram.MyProgram
你描述的那个命令并不重要。它们都汇编在一起,MyProgram
将引用Server1
等等。
答案 2 :(得分:2)
现在可能需要解决的问题可能更多,但您可能需要考虑像Maven这样的构建系统。开始尝试; How do I make my first Maven project?
您可以使用它来预定义构建顺序,如果您想让它为您创建一个jar(或不是)。
答案 3 :(得分:2)
您必须确保将.class文件的位置添加到类路径中。所以,如果它在当前文件夹中然后添加。到你的类路径。请注意,windows类路径分隔符是一个分号,即
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官方网站
查看this答案 4 :(得分:0)
听起来你只需要打开多个命令提示符,然后按照运行它们的顺序编译和运行它们。如果我误解了问题,请告诉我。
答案 5 :(得分:0)
执行两个相互依赖的JAVA程序。 (例如:两个文件Complex.java和Solution.java,其中Soultion.java依赖于Complex.java。 因此,应首先编译Complex.java,然后必须将Complex的类文件与Solution.java链接,然后必须为Output执行Solution.class。) 用SYNTAX参考图像。
第1步:
编译Complex.java
syntax- javac -d [path_where_class_File_build] [path_of_the_file \ filename.java]
(Solution.java和Complex.java是Linked.ie-Solution.java调用Complex.java)
第2步:
使用链接Complex.class编译Solution.java 链接Complex.class(上面在步骤1中创建)
syntax- javac -d [path_where_class_File_build] -cp [path_of_the_first_class_created] [path_of_the_file \ filename.java]]
第3步:
java -cp [path_of_second_class_created] [class_Name]