我们通过键入java <programname>
来运行Java程序,其中<programname>
表示从我的源代码编译的Java类文件。为什么我不能通过键入<programname>
?
答案 0 :(得分:9)
Java被编译为字节码而不是本机可执行代码。由于操作系统和生成的字节码之间没有自动关联,因此您需要一个本机解释器来运行代码。
答案 1 :(得分:4)
System需要本机可执行命令,它不能理解.class文件。
对于Java,本机可执行文件在JRE安装的/ bin /目录中提供。
类文件在JVM上运行,而不是在底层系统上运行。这个“java”可执行文件启动JVM并将提供的类加载到它。
答案 2 :(得分:1)
Java程序始终在JVM中运行,“java”命令调用JVM。 JVM是一个虚拟机,意味着您的物理逻辑机器,这意味着您的程序名称是对虚拟机(逻辑机器)的直接命令。在java程序中,程序被编译为字节代码,这是逻辑机器(JVM)的机器代码,因此它可以直接在虚拟机(JVM)上执行,而不是在操作系统上执行。你的java程序不是你的操作系统的机器代码,这就是为什么你不能通过在命令提示符下放置程序名来直接运行你的java程序。
答案 3 :(得分:1)
因为.class文件在Windows上无法识别为可执行文件。但是程序java是一个.exe(所以windows知道它是一个可执行文件),所以你输入java来启动java程序并告诉它打开你的.class文件。
答案 4 :(得分:0)
Windows中没有“胶水”(由微软提供),让它知道如何将command
映射到执行command.class
。因此,您必须自己进行调用。
请注意,某些Java安装允许单击jar文件(包含类文件的zip文件)来运行内部应用程序。