如何从命令行在Windows上运行.class文件?
我正在尝试从命令行运行.class文件。当我手动移动到存储目录时,它会起作用,但是当我尝试这样的操作时:
java C:\Peter\Michael\Lazarus\Main
它说找不到主班。除了制作.jar文件(我知道.jar是最好的解决方案,但现在不是我正在寻找的解决方案)之外,还有其他解决方案吗?
回答:
在Java应用程序启动(又名java.exe
或干脆java
)预计最多支持四个不同的方式来指定要启动(取决于Java版本使用)的东西。
- 指定 是最基本的方法。注意, 不同于 。
java -cp path/to/classFiles/ mypackage.Main
在这里,我们启动类mypackage.Main
,并使用-cp
开关来指定它是用来查找类的类路径(该类别的完整路径mypackage.Main
会path/to/classFiles/mypackage/Main.class
。
- 启动一个jar文件。
java -jar myJar.jar
这会将jar本身及其在Class-Path
条目上指定的所有内容放在类路径上,并启动通过Main-Class
条目指示的类。请注意,在这种情况下,您
不能 指定任何其他类路径条目(它们将被静默忽略)。
Java 9引入了模块,并由此引入了一种以与选项#2相似的方式启动特定模块的方式(通过启动该模块专用的主类或通过在该模块内启动用户指定的类):
java --module my.module
Java 11引入了对单文件源代码程序的支持,这使得执行适合单个源文件的Java程序非常容易。它甚至为您完成了编译步骤:
java MyMain.java
该选项对于第一次尝试Java很有用,但很快会达到其极限,因为它不允许您访问另一个源文件中定义的类(除非您单独编译它们并将它们放在类路径中,否则将失败)这种方法的易用性,这意味着您可能应该在这种情况下切换回选项1。
此功能被开发为JEP 330,有时仍被称为JEP
330。
对于您的特定情况,您可以使用选项#1并java
通过使用-classpath
选项(或其缩写-cp
)告诉在哪里寻找该类:
java -classpath C:\Peter\Michael\Lazarus\ Main
您Main.java
包含整个源代码(并且它在同一目录中),则可以使用选项#4,跳过编译步骤并直接编译并执行它:
java c:\Peter\Michael\Lazarus\Main.java
以上是 如何从命令行在Windows上运行.class文件? 的全部内容, 来源链接: utcz.com/qa/430916.html