java中带package和不带package的编译运行方式是不同的。

首先来了解一下package的概念:简单定义为,package是一个为了方便管理组织java文件的目录结构,并防止不同java文件之间发生命名冲突而存在的一个java特性。不同package中的类的名字可以相同,只是在使用时要带上package的名称加以区分

package debug;

class Demo {

  

1、带package运行方法

我的代码目录结构为:D:\WorkSpace-Java\java_excise\src\debug\HelloWorld.java

 package debug;

 class HelloWorld {
public static void main(String[] args){
System.out.println("hi");
}
}

在eclipse中运行能正常打印出内容,此时我想在命令窗口中去重新编辑并运行该文件时,即提示错误 找不到或无法加载主类

操作步骤如下:

1、win + R 调出运行窗口并输入 cmd 打开命令窗口

2、切换盘符 输入: e:  然后回车

3、进入到代码目录: cd D:\WorkSpace-Java\java_excise\src\debug

4、编译文件: javac HelloWorld.java

5、运行该文件: java HelloWorld,报错了,如下图:

原因:报这个错原因是在当前目录下,然后根据代码文件中引用的包名会在当前debug目录下再去找debug目录(这个目录肯定不存在,如果你想验证是不是这样,可以手动在当前debug目录下再新建一个debug目录,然后把HelloWorld.class文件拷过去重新运行),所以就会报找不到或者无法加载主类,那么要如何才能正常运行呢,想到了这个代码执行的流程要先找到该debug路径,那是不是我只要返回到当前debug目录的上一级目录,然后重新执行该java文件不就可以找得到debug目录了,话不多说直接上验证截图,从图中可以看到执行成功了:

2、不带package运行方法

 //package debug;

 class HelloWorld {
public static void main(String[] args){
System.out.println("hi");
}
}

操作步骤如下:

1、win + R 调出运行窗口并输入 cmd 打开命令窗口

2、切换盘符 输入: e:  然后回车

3、进入到代码目录: cd D:\WorkSpace-Java\java_excise\src\debug

4、编译文件: javac HelloWorld.java

5、运行该文件: java HelloWorld,直接就得出正确的结果了,如下截图:

 总结:

1、一般通过IDE开发的代码,在新建class文件时,会默认在文件首行产生一个 package xxx;的代码,这样的代码是可以直接在IDE进行编译并正常运行的(前提是代码无基本的语法错误),如果想要在DOS命令窗口中编译并运行的话,此时就需要将文件目录切换至代码所在目录的上一级目录,然后用 java xxx进行执行,否则会报错,简单做法为:编译文件时javac xxx.java在当前代码路径下,运行文件时需要返回到代码所在目录上一级目录执行,执行时同时要带上包名 java xx.xxx (xx代表包名,xxx代表java类名)。

2、如果是通过Notepad++创建的java文件,一般首行都不会带上package,这样在命令窗口中编译和执行就不需要额外去切换目录了,可以在当前目录直接执行。

今天遇到一件开心事,在eclipse编写的代码在命令窗口中编译后无法运行,提示 “错误: 找不到或无法加载主类”的更多相关文章

  1. Eclipse无法编译,提示错误“找不到或者无法加载主类”解决方法

    jar包问题: 1.项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包, 解决办法是:将这个不可用的jar包remo ...

  2. Eclipse 无法编译,提示“错误: 找不到或无法加载主类”

    jar包问题: 1.项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包, 解决办法是:将这个不可用的jar包remo ...

  3. eclipse springboot运行helloworld错误: 找不到或无法加载主类 xxx.xxx.xxx

    这个错误,在网上搜找了好久,说是什么jar包冲突,什么环境配置,我经过验证均是正确的,javac java java -version 都没问题,环境变量也OK,各种解释均没有能够解决我的问题,最后好 ...

  4. Eclipse 无法编译 或 提示“错误: 找不到或无法加载主类”

    project显示一个红色叹号,通常是.jar文件缺失,在下面找到配置 在libraries中添加add External JARs添加.jar文件

  5. [原创]消灭eclipse中运行启动的错误:“找不到或无法加载主类”问题

    最近一直遇到这个问题且根据网上的文章做法基本无法通过,故将自己的解决步骤记录及分享给大家. 一:环境必须要配置好. 试试在dos界面输入:java.javac 分别这两个命令是否能执行,如果都能执行恭 ...

  6. Java SE之 Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法!【摘抄】

    声明一下:此BUG确实经常困扰我许久,今日遇到很强大的一套解决办法,又怕原博主的网页以后查找不到,故此摘抄copy一份,望得各方侵权一事而谅解. 传送门先行送上:http://blog.csdn.ne ...

  7. Eclipse错误: 找不到或无法加载主类或项目无法编译10种解决大法

    1.在src文件夹上点右键-Build Path-Use as Source Folder,重新进行编译,一切正常了.2.在Eclipse工程文件夹上点右键-Refresh,重新编译,一功OK(这个方 ...

  8. eclipse 错误: 找不到或无法加载主类

    在src文件夹上移除Source Folder,再点右键-Build Path-Use as Source Folder,重新进行编译,一切正常了.

  9. eclipse 执行main方法 错误: 找不到或无法加载主类

    检查环境变量是否正确 JAVA_HOME JAVA的实际安装目录 CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\ ...

随机推荐

  1. [深度学习]理解RNN, GRU, LSTM 网络

    Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...

  2. 主从热备+负载均衡(LVS + keepalived)

    前言 淘宝架构师李智慧大牛的书籍<大型网站技术架构>以及旭龙兄的博客  --->[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡. 从上参考而得来本文,本文旨 ...

  3. 跨域请求中预检请求options之坑

    一.前言 因为跨域请求,浏览器可能(后面讲)会发送一次options请求,如果处理不好,跨域还是会gg的. 之前很少涉及跨域,涉及也是简单请求(下面阮老师文章中区别热简单请求和复杂请求),所以基本不会 ...

  4. FFmpeg数据结构AVFrame

    本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10404502.html 本文基于FFmpeg 4.1版本. 1. 数据结构定义 stru ...

  5. 一张图读懂PBN旁切转弯计算

    当DOC8168进入PBN章节以后,所有的保护区不再标注风螺旋的字母位置点.似乎ICAO已经有了精确计算的方法,只是没有告诉我们.沿着风螺旋的轨迹一路走来,切线与角度的换算方法想必已经相当熟悉了吧,这 ...

  6. 史上最全的 Python 3 类型转换指南

    int 支持转换为 int 类型的,仅有 float.str.bytes,其他类型均不支持. float -> int 会去掉小数点及后面的数值,仅保留整数部分. int(-12.94) # - ...

  7. [总结] LCT学习笔记

    \(emmm\)学\(lct\)有几天了,大概整理一下这东西的题单吧 (部分参考flashhu的博客) 基础操作 [洛谷P1501Tree II] 题意 给定一棵树,要求支持 链加,删边加边,链乘,询 ...

  8. LINQ分页和排序,skip和Take 用法

    LINQ分页和排序,skip和Take 用法 dbconn.BidRecord.OrderBy(p=>p.bid_id).ToList<BidRecord>().OrderBy(p ...

  9. Easyui-textbox得到焦点方法

    得到焦点是我们在编写前台时经常使用到的,为了提高用户的体验度,话不多说直接上代码. jsp页面: <div class="box_xian"> <span cla ...

  10. HDU4287

    Intelligent IME Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...