今天遇到一件开心事,在eclipse编写的代码在命令…
2018-11-22 08:42:30来源:博客园 阅读 ()
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
1 package debug; 2 3 class HelloWorld { 4 public static void main(String[] args){ 5 System.out.println("hi"); 6 } 7 }
在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运行方法
1 //package debug; 2 3 class HelloWorld { 4 public static void main(String[] args){ 5 System.out.println("hi"); 6 } 7 }
操作步骤如下:
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,这样在命令窗口中编译和执行就不需要额外去切换目录了,可以在当前目录直接执行。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:采用位异或方式将两个变量数值调换
下一篇:Java中的堆和栈以及堆栈的区别
- 今天来介绍java 各版本的新特性,一篇文章让你了解 2020-06-10
- 面试遇到“一问三不知”的,真替他老东家捏把汗 2020-06-05
- “JVM性能调优解析”,查缺补漏JVM进阶面试题77问.你都遇到过 2020-05-25
- Set集合重复性? 2020-05-17
- 实现多线程的同步 2020-04-19
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash