当前位置:首页 > 数字化与技术

javac编译正常,java找不到或无法加载主类的解决方法

老陌10年前 (2016-04-16)数字化与技术15530

Java初学者,安装Java的时候,在cmd中javac和Java都能正常,编辑java程序HellWorld,在CMD命令下,Javac编辑正常,但是java HellWorld就提示找不到或无法加载主类。怎么办?

网上淘了半天,无非就是环境变量配置问题。但是还是解决不了实际问题,于是我亲自再找原因,终于找到破解之法,分享出来给大家。

网络上基本都是在说关于"classpath"路径的配置问题,要加入 ” .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;“  
 前面加入”.;",表明要在当前目录下面寻找类。如果你试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使用的测试代码,是否在某一个包名的下面;
举例:代码如下:

package com.runoob.test;

public class HellWorld {

    public static void main(String []args) {

        System.out.println("Hello World");
     }
}

这个代码片段表明,代码包含com.runoob.test下,所以,运行javac HellWorld.java,可以编译,并生成一个HellWorld.class的文件,但是,如果执行java HellWorld却是找不到或无法加载主类。这时候就检查一下文件路径。

假如我把文件放在E:\Program Files (x86)\Java\Work\Test\src下面,那文件就在E:\Program Files (x86)\Java\Work\Test\src\com\runoob\test下面。但是包名已经包含了路径。所以,javac和java命令只需要在src下就行。CMD命令如下:

/*编译HellWorld.java文件
E:\Program Files (x86)\Java\Work\Test\src>javac com/runoob/test/HellWorld.java

/*运行HellWorld.class类文件
E:\Program Files (x86)\Java\Work\Test\src>java com.runoob.test.HellWorld

/*运行结果,成功
Hello World

注意分析上面的CMD代码片段,这是代码包名路径的问题。

原理说明:

java 程序运行class文件,对于有包名的类,java把包名当成文件夹处理,”包名+类名“ 相当于 ”文件夹目录+类名“来寻找类。

至此,问题解决。

分享给朋友:

相关文章

要正确设置网站robots.txt文件啊

要正确设置网站robots.txt文件啊

在谷歌搜索框里输入site:www.imwen.com,然后翻到最后面看,却不想此刻我惊呆了,因为整页的搜索结果都是You are not login, Exiting...,这是搜索引擎没有登录网站…

App推广渠道有哪些?

进入移动互联时代,尤其是近年APP应用软件的迅猛发展,迫使众多行业精英寻找APP推广渠道的破解之法,任何做推广的人都会想破脑袋去考虑如何做好一个产品的推广工作,其中必先解决的问题就是推广渠道。APP推…

网络推广是SEO,还是SEM?以APP推广为例

因为手机站展示内容有限,而且有些SEO技术问题不能实现,所以,依靠SEM拼杀,是较好的选择了。特别是,app一般都是在手机端使用的,用手机站找APP的用户更多,如何把自己的APP产品更大面的展示在手机…

App用户流失真相,如何避免APP用户流失

随着App数量的增多和应用商店入口的集中,当下单个App在获取用户的难度越来越大,同时,在获得用户的成本上也越来越高,比如曾经一个APP通过市场首发能获得大量用户的机会下,现在首发获取的用户数量也是一…

改善应用用户体验的7种途径

如果说影响应用排名的最大因素是什么?那一定是用户体验了。再也没有什么比它更重要的了,但是很多开发商在忙着开发和发布新应用的时候,往往会忽略掉这个过程中最重要的因素,那就是:用户…

windows xp/win7系统设备管理器显示隐藏的端口并删除

windows xp/win7系统设备管理器显示隐藏的端口并删除

电脑使用一段时间后,就会存在大量的文件垃圾,其中包括各种USB驱动垃圾,有时候,USB端口就被占用了,其实可以做个简单的优化,在这个过程中,需要用到windows xp/win7系统设备管理器显示隐藏…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。