java环境变量详解---找不到或无法加载主类
CoreJava异常汇总

异常汇总教学保障部王宇希目录一、基础错误!未指定书签。
1、不是内部或外部命令错误!未指定书签。
2、类..是公共的,应在名为..的文件中声明错误!未指定书签。
3、缺失分号错误!未指定书签。
4、非法字符错误!未指定书签。
5、在..类中找不到主方法错误!未指定书签。
6、进行语法解析时已到达文件结尾错误!未指定书签。
7、需要,或错误!未指定书签。
8、找不到符号错误!未指定书签。
9、不是语句(标识符)错误!未指定书签。
10、找不到文件错误!未指定书签。
11、找不到或无法加载主类错误!未指定书签。
12、需要<标识符>(主函数声明)错误!未指定书签。
二、变量错误!未指定书签。
1、不兼容的类型错误!未指定书签。
2、可能损失精度错误!未指定书签。
3、可能尚未初始化变量错误!未指定书签。
4、找不到符号(局部变量使用范围)错误!未指定书签。
5、已在..方法中定义了变量..错误!未指定书签。
6、不可转换的类型错误!未指定书签。
7、未结束的字符文字错误!未指定书签。
8、过大的整数错误!未指定书签。
9、浮点数过大错误!未指定书签。
三、表达式/运算符错误!未指定书签。
1、可能损失精度(自动类型提升)错误!未指定书签。
2、非法的表达式开始错误!未指定书签。
3、不是语句(表达式)错误!未指定书签。
4、二元运算符’..’的操作数类型错误错误!未指定书签。
5、不可比较的类型错误!未指定书签。
6、:/错误!未指定书签。
7、意外的类型错误!未指定书签。
四、流程控制错误!未指定书签。
1、不兼容的类型()错误!未指定书签。
2、二元运算符...的操作数类型错误()错误!未指定书签。
3、有'',但是没有''错误!未指定书签。
4、可能损失精度()错误!未指定书签。
5、需要常量表达式错误!未指定书签。
6、需要:错误!未指定书签。
一、基础1、不是内部或外部命令异常提示信息:异常原由:由于的目录未在环境变量中设置,导致系统不识别该命令。
解决idea找不到或无法加载主类的错误处理

解决idea找不到或⽆法加载主类的错误处理
错误: 找不到或⽆法加载主类 com.yan.ms.work.WorkServiceApplication
Disconnected from the target VM, address: '127.0.0.1:51456', transport: 'socket'
有时候更新gradle后,启动项⽬就报错了,
错误: 找不到或⽆法加载主类 com.yan.ms.work.WorkServiceApplication
Disconnected from the target VM, address: '127.0.0.1:51456', transport: 'socket'
⽹上找了很多⽅式试了下,感觉就如段誉的六脉神剑时灵时不灵的。
⽆意间把 out 下的⽂件删了,就没这个问题了。
处理:
把out下 production⽂件夹内容都删了,重新跑,正常了。
后⾯再遇到这样的问题,删了后就可以了,屡试不爽。
总结:
可能更新gradle后,代码重新编译发⽣了冲突导致找不到类,这时候把原来编译⽣成的都删了就可以了。
有时候甚⾄找不到类(其实有的,没读取到),也是删了production,再启动。
到此这篇关于解决idea找不到或⽆法加载主类的错误处理的⽂章就介绍到这了,更多相关idea 找不到或⽆法加载主类内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
idea找不到或无法加载主类java.lang.ClassNotFoundException

idea找不到或⽆法加载主类ng.ClassNotFoundException昨天研究类加载的双亲委派,按照demo敲敲加深记忆的时候,报了标题上的错。
困扰了⼀夜,今天起来吃过饭就琢磨这个事情,刚刚终于搞明⽩了。
demo的⽬的是利⽤URLLoader加载磁盘上的Person类我的demo的⽬录结构:代码结构:package com.classloader.test;import java.io.File;import .MalformedURLException;import .URI;import .URL;import .URLClassLoader;public class TestURLLoader {public static void main(String[] args) throws ClassNotFoundException, MalformedURLException, InstantiationException, IllegalAccessException {new LoaderFromDisk();}}class LoaderFromDisk {LoaderFromDisk() throws MalformedURLException, ClassNotFoundException, IllegalAccessException, InstantiationException {File file = new File("F:/git-worksapce/try-new-technologies/classLoader/src/com/world/");URI uri = file.toURI();URL url = uri.toURL();URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});System.out.println("urlClassLoader的⽗加载器="+urlClassLoader.getParent());Class aclass = urlClassLoader.loadClass("com.world.Person");Object obj = aclass.newInstance();}}package com.world;public class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) { = name;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}}很简单的demo,TestURLLoader中有main⽅法我点击运⾏控制台的报错:我们来看看上图红框中idea帮我们⽣成的执⾏类的命令:"C:\Program Files\Java\java11\jdk-11.0.5\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=51749:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 com.classloader.test.TestURLLoader上⾯的是idea创建的java project,我们⽤idea创建maven⼯程,⽬录如下:代码⼀模⼀样,只是这个是maven⼯程,我们run的结果:成功了!!我们分析idea两种⽅式,⽣成的运⾏命令:⽅式⼀:"C:\Program Files\Java\java11\jdk-11.0.5\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=51749:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 com.classloader.te 错误: 找不到或⽆法加载主类 com.classloader.test.TestURLLoader原因: ng.ClassNotFoundException: com.classloader.test.TestURLLoaderProcess finished with exit code 1⽅式⼆:"C:\Program Files\Java\jdk1.8.0_181\bin\java.exe" "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=52066:D:\Program Files\JetBrains\IntelliJ IDEA2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_181\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\deploy.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\cldrdata.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\jfxrt.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunec.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\sunmscapi.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\javaws.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\jfxswt.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\plugin.jar;C:\ProgramFiles\Java\jdk1.8.0_181\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_181\jre\lib\rt.jar;F:\git-worksapce\try-new-technologies\classLoader\target\classes"com.classloader.test.TestURLLoaderurlClassLoader的⽗加载器=uncher$AppClassLoader@18b4aac2Process finished with exit code 0不同:maven的多了⼀个-classpath参数!结论:第⼀种java⼯程,idea没有指定classpath参数,所以肯定找不到要执⾏的类,不知道是我配置问题,还是这就是个idea的bug,这个是问题?,我推荐使⽤第⼆种maven⼯程。
eclipse运行springboot项目报错‘找不到或无法加载主类’

eclipse运⾏springboot项⽬报错‘找不到或⽆法加载主类’Duang!问题出现
然后开始尝试解决,办法A:清理项⽬编译⽂件,开启⾃动编译
选择这个问题项⽬》清理
发现还是存在问题,继续找,⽅法B:更新maven依赖,如图:⼯程上右键》Maven》update project(然后⼩等⼀会⼉,右下⾓更新完成再次尝试启动)
No,还是不好使,⽅案C:更改项⽬编译使⽤的jre为jdk,是不是这个问题呢,试⼀下吧!如下图:⼯程上右键》Build Path》Configure Build Path...》Libraries》选择这个jre》Edit》第⼆项(找到计算机上安装的jdk)》Finish
然⽽,还是不好使。
使出终极⼿法,⽅案D:忽略错误警告(⼀般不这么建议,但是为了测试先这么搞吧,或者可以记下错误排查)如下图:window》Show View》Problems(调出控制台查看问题原因)
俩错误,⼀个疑似编译路径问题,⼀个是依赖⽂件读取问题,鉴于测试状态,应该可能会是没啥⼤影响~
那就忽略掉:window》preference》java》compiler》building》展开第⼆个build path problem》前两个级别改成warning(警告)
OK,就这些。
在CMD下用java命令出现“找不到或无法加载主类”问题

问题描述:
编写简单的Hello.java程序,在cmd命令行下用javac Hello.java命令编译没有问题,可以生成Hello.class文件。但输入java Hello命令后(文件目录和命令目录一致),提示错误:“找不到或无法加载主类”。
解决方法:
从网上查找原因和解决方法,有提到环境变量classpath设置问题,但多次尝试问题依旧没有解决。然后使用java -cp %classpath; Hello执行,结果正确。
Hale Waihona Puke 上网查找用户变量与系统变量的区别,用户变量是当前用户使用,你用其它用户登陆,这个环境变量就不起作用了(私有)。而系统变量,是对所有用户都可使用的(公有)。但还不太清楚为什么出现这种情况?
精品文档java找不到或无法加载主类XXX

java 找不到或无法加载主类XXX使用命令行运行Java文件时,有时会提示错误“找不到或无法加载主类XXX”,这里涉及到三个可能的原因:(1)java是环境变量JA V A_HOME、CLASSPATH、Path没有正确配置。
(2)命令行所在目录和Java文件所在目录不同。
(3)定义了包名的类,需要特殊处理1.原因(1)的解决方法在网上有很多配置Java环境变量的解决方法,原理都是一样的,这里就不再详述;2.原因(2)的解决方法当命令行所在目录和Java文件所在目录不同时,一定要给出Java文件的完整路径名称!例如:在D盘根目录下编写一个Hello.java文件,那么Hello.java的完整路径名称为D:\Hello.java。
1.打开命令行,执行javac Hello.java,报错“javac:找不到文件:Hello.java”,这是因为命令行的目录为C:\Users\Administrator,与Hello.java的目录不同,命令行javac从它的当前目录找不到Hello.java。
2.将命令行切换到D盘根目录下,执行javac Hello.java,此时没有报错,说明编译成功,然后再执行java Hello,程序成功运行。
当Java文件和命令行在同一目录下时,直接输入Java文件名称,即可成功运行。
3.那么如何在不同的目录下成功运行Java文件呢?解决方法:当Java文件和命令行在不同目录时,编译时输入Java文件的完整路径名称;执行时,因为classpath指定了Java 类的执行路径,Java类只有包含在classpath路径下才能被java命令识别,有如下两种方法:(1)通过set classpath命令设置Java类的临时执行路径(2)在系统环境变量classpath后面加上;d:;,表示搜索Java类时会从d盘目录搜索需要注意classpath在编译时是不起作用的,所以在目录不同时,无论有没有配置classpath路径,javac命令后面都要输入Java文件的完整路径名称。
青鸟javac和java命令的正确使用方法

“找不到或者无法加载主类”搞得很烦,今天彻底搞明白原因了,总结如下:1.javac命令如果要编译的.java文件不带完整路径,javac会默认在当前路径中寻找要编译的.java文件。
例如:Test1.java文件的存放位置是d:\com\Test1.java,而运行运行javac命令时是在c:\uers\zhangsan 提示符下运行的,那么输入javac Test1.java就会编译失败,因为编译器在当前路径(c:\uers\zhangsan)中找不到Test1.java文件。
解决办法:javac d:\com\Test1.java就ok。
注:javac命令跟设置的path环境变量没有关系,设置path环境变量只是为了在任何提示符下都能运行javac,java命令。
另外,如果要编译的类文件(类文件A)中用到了同一个包中的另外一个类(类文件B),javac 类文件A时需要同时编译类文件B,即:javac d:\com\类文件A d:\com\类文件B如果编译的时候不是同时编译这2个类文件,而是先javac 类文件B,然后在javac 类文件A会编译不通过,不明白为什么?????2.java命令java命令能否成功运行class文件跟设置的classpath环境变量有关,也与是否在.class文件所在的目录下运行有关,具体如下:1)没有设置classpath环境变量比如:Test1.class文件的存放位置是d:\com\Test1.class,且class 文件中不带包,那么想要成功运行Test1.class文件就必须将命令符切换到d:\com下,然后再运行java Test1。
因为java只会在当前路径下寻找Test1.class文件,找到就运行,找不到就拉到。
若Test1.class文件中带包的话(文件中有package com语句)运行的时候,只需要将命令提示符切换到包所在的路径即可,上述实例中命令行提示符切换到d:\即可,运行命令为:d:> java com.Test12)设置classpath环境变量如果想在任何命令提示符中都可以运行Test1.class文件,我们可以设置classpath环境变量(分临时设置和永久设置两种方式),将Test1.class所在的路径加入到classpath变量即可,这样当jvm在当前路径中找不到Test1.class文件时,它会再去classpath指定的路径中继续寻找。
错误:找不到或无法加载主类

文件内容如下:
public class Welcome { public static void main(String[] args) { System.out.println("Welcome to Core Java"); }
}
ቤተ መጻሕፍቲ ባይዱ
2. package 问题
如果类上加了 package,就需要建立对应 package 的目录。
3. 命令使用问题
第一步需要使用 javac Welcome.java ,将代码编译成字节码文件。成功编译后会生成 Welcome.class 文件。 第二步使用 java Welcome 运行,Welcome 后面不要跟 .java 或者 .class。这里的 Welcome 是 main 函数所在的类名。
登录后才能查看或发表评论立即登录或者逛逛博客园首页
错误:找不到或无法加载主类
问题描述:
在命令控制台中运行 java Welcome,显示如下错误: 错误: 找不到或无法加载主类
原因:
1. 环境变量 CLASSPATH 设置问题
在 CLASSPATH 中添加 . (英文句号),让 java 查找当前目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
默认安装在C:\ProgramFiles\Java\jdk1.7.0目录下
环境变量配置为
PATH=.;%JAVA_HOME%\bin
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
JAVA_HOME=C:\Program Files\Java\jdk1.7.0
在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。
首先右键点我的电脑。
打开属性。
然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”
、“path”、“classpath”,其中在没安装过jdk的环境下。
path属性是可能存在的(安装过其它软件可能
会自动增加,如暴风影音,)。
而JAVA_HOME和classpath是不存在的。
一:点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,然
后在变量值写入刚才安装的路径“C:\ProgramFiles\Java\jdk1.7.0”。
二:其次在系统变量里面找到path,没有就新建,然后点编辑,path变量的含义就是系统在任何路径下都
可以识别java命令,则变量值为“.;%JAVA_HOME%\bin;”,(其中“%JAVA_HOME%”的意思为刚才设置
JAVA_HOME的值),也可以直接写上“C:\Program Files\Java\jdk1.7.0\bin;”
三:最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or lib)路
径,只有类在classpath中,java命令才能识别。
其值为
“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;(要加.表示当前路径)”,与相同
“%JAVA_HOME%有相同意思”
以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。
先打开“开始
”-> “运行”,打入“cmd”,进入dos系统界面。
然后打“java -version”,如果安装成功。
系统会显示java version jdk"1.7.0"。
确保安装在C:\ProgramFiles\Java\jdk1.7.0,环境变量直接复制就可以了,在dos界面中输入javac来查
看该命令是否合法,同样输入java来查看该命令是否合法
这样环境变量就设置好了,下面进行对PATH,CLASSPTH,JAVA_HOME的讲解
以下为置JAVA_HOME,CLASSPATH,PATH的目的:
1,设置JAVA_HOME:
一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.7.0目录里,则设置JAVA_HOME为该
目录路径, 那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的
路径串;
二、归一原则, 当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任
何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!
三、第三方软件会引用约定好的JAVA_HOME变量, 不然, 你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题.
2,设置CLASSPATH:
这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子: 你编译一个JAVA程序---A.java, 会得到一个A.class的类
文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:\"), 执行java A, 将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:\"再在任何目录下运行java A, 看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件!
3,设置PATH:
道理很简单, 你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗, 当然不会, 于是, 你
可以选择把%JAVA_HOME%\bin添加到PATH路径下, 这样, 我们在任何路径下就可以仅用java来执行命令了
.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序,
并且执行.)
现在都配置完了,可以检测一下:
按下“WIN”(在Ctrl和Alt之间)+“R”,输入cmd,回车。
分别输入java,javac,java -version,如果正确配置了环境变量,则分别回出现下图内容。
输入“java”后回车:
输入javac后回车:
输入java –version(该命令为查看jdk版本的命令,注意:Java后要空格再加–version)后回车:
配置好了那我们就测试下吧
在C盘创建一个java的文件夹,再创建一个HelloWorld.java的文件,复制一下内容保存
public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World");
}
}
开始->运行->cmd 打开命令行
C:\Documents and Settings\Administrator>cd c:\java
C:\java>javac HelloWorld.java
C:\java>java HelloWorld
Hello World
C:\java>
注:CLASSPATH值的最后没;(分号)会出现以下错误错误:找不到或无法加载主类HelloWorld。
java HelloWorld时,字母大小写搞错也出错。