Java文件编译成功后的class文件无法执行

问题:创建了Java项目之后,写了helloworld后,在eclipse上能正常运行。但在控制台上编译运行这段代码,发现可以成功编译但是运行报错

  • 项目结构


    项目结构
  • 代码

package Demo;
public class Demo01 {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}
  • 报错


    找不到或无法加载主类 Demo01
  • 原因
    放在package下的文件,编译方式跟直接建立一个java文件的方式略微差异,编译后,是放在java文件中写的package语句的包名下的,例如:

    • 本文中的package语句为:package Demo;,编译后,class文件是放在Demo文件夹下的
    • 如果package语句为com.bjpowernode.exam;,编译后,class文件是放在com/bjpowernode/exam下的
  • 解决办法
    • 方法一:
      • 编译: javac -d . 被编译的java文件名
        • javac:负责编译的命令
        • -d:带包编译
        • . :代表编译后生成的东西放在当前目录下
      • 运行:在包名的上一级目录下运行 java 完整类名(包名.类名)
        在src目录下,运行class文件
    • 方法二:直接使用java xxx.java
直接使用java xxx.java
  • 不使用package,直接建立java文件编译运行的形式
    语法:java 类名
    结构

    编译后,可在同目录下,直接运行
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容