如何从命令行在Windows上运行.class文件?

我正在尝试从命令行运行.class文件。当我手动移动到存储目录时,它会起作用,但是当我尝试这样的操作时:

java C:\Peter\Michael\Lazarus\Main

它说找不到主班。除了制作.jar文件(我知道.jar是最好的解决方案,但现在不是我正在寻找的解决方案)之外,还有其他解决方案吗?

回答:

在Java应用程序启动(又名java.exe或干脆java)预计最多支持四个不同的方式来指定要启动(取决于Java版本使用)的东西。

  1. 指定 是最基本的方法。注意, 不同于 。
     java -cp path/to/classFiles/ mypackage.Main

在这里,我们启动类mypackage.Main,并使用-cp开关来指定它是用来查找类的类路径(该类别的完整路径mypackage.Mainpath/to/classFiles/mypackage/Main.class

  1. 启动一个jar文件。
    java -jar myJar.jar

这会将jar本身及其在Class-Path条目上指定的所有内容放在类路径上,并启动通过Main-Class条目指示的类。请注意,在这种情况下,您

不能 指定任何其他类路径条目(它们将被静默忽略)。

  1. Java 9引入了模块,并由此引入了一种以与选项#2相似的方式启动特定模块的方式(通过启动该模块专用的主类或通过在该模块内启动用户指定的类):

    java --module my.module

  2. 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

回到顶部