java文件编译为class文件需要键入什么命令_Java文件编译成功后的class文件无法执行...

本文记录了一位开发者在命令行环境下编译并运行Java程序时遇到的NoClassDefFoundError异常。问题源于对类路径和Java命令执行方式的理解不准确。通过调整命令行路径和执行命令,最终成功运行了类文件。总结了正确执行Java程序的方法和理解类路径的重要性。
摘要由CSDN通过智能技术生成

平时用惯了Eclipse,今天偶尔在命令行界面想做一个Demo,测试一段代码。原本以为javac一下,java一下就可以得到自己想要的结果,可是结果大跌眼镜,自己被一个问题卡主了:java文件成功编译,但当运行编译后的class文件却报一个异常:NoClassDefFoundError。

当时的具体情况是这样的:java文件所在的package为com.fx.s1,当时的命令行所在路径为 xx:\xxx\src\com\fx\s1\_

我就是在此路径下先执行:javac Test1.java,运行成功,成功在当前路径产生Test1.class文件,编译成功。

当我在此路径下继续执行:java Test1 ,结果就是NoClassDefFoundError。

当时百思不得其解,环境变量的CLASSPATH设置成功,没有问题。那只有可能是命令行的问题。

改变执行命令,在class文件明前加package名称,即:java com.fx.s1.Test (注意:当前执行命令的路径还是之前的路径,没有变),执行结果:错误: 找不到或无法加载主类 com.fx.s1.Test1.

郁闷,在分析:java命令执行时,按照classpath配置情况看,是从当前目录下,加载文件的。所以如果我在com/fx/s1的目录下,在执行class文件,JVM会从新在当前目录下继续找package,所以有问题。

在改变一下,命令不变,改变路径,将命令执行路径退回到之前路径的src下,即:xx:\xx\src。在此路径下继续执行:java com.fx.s1.Test1.

执行成功。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 DOS 命令编写 Java 文件,您需要遵循以下步骤: 1. 打开命令提示符(CMD)窗口。 2. 使用`cd`命令导航到您存储 Java 文件的目录。例如,如果您的文件位于 `C:\myJava` 目录下,您可以使用以下命令导航到该目录: ``` cd C:\myJava ``` 3. 创建一个新的文本文件,并将其保存为以 `.java` 结尾的文件。例如,您可以使用以下命令创建一个名为 `HelloWorld.java` 的文件: ``` echo public class HelloWorld { > HelloWorld.java echo public static void main(String[] args) { >> HelloWorld.java echo System.out.println("Hello, World!"); >> HelloWorld.java echo } >> HelloWorld.java echo } >> HelloWorld.java ``` 这个命令会将 Java 代码写入名为 `HelloWorld.java` 的文件中。在上面的示例中,我们创建了一个简单的 Java 程序,用于打印 "Hello, World!"。 4. 使用文本编辑器(如记事本)打开新创建的 Java 文件,并进行编辑或添加其他代码。 5. 使用 Java 编译器(`javac`)编译 Java 文件。在命令提示符窗口中,键入以下命令: ``` javac HelloWorld.java ``` 如果没有错误,这将在同一目录下生成一个名为 `HelloWorld.class` 的字节码文件。 6. 使用 Java 虚拟机(`java`)运行编译后的 Java 文件。在命令提示符窗口中,键入以下命令: ``` java HelloWorld ``` 这将执行 `HelloWorld` 类中的 `main` 方法,并输出 "Hello, World!"。 请注意,以上步骤仅适用于在 DOS 命令提示符下编写和运行简单的 Java 文件。如果您需要构建更复杂的 Java 应用程序,建议使用集成开发环境(IDE)如 Eclipse、IntelliJ IDEA 或 NetBeans。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值