关于cmd中java找不到主类的问题
- 格式:docx
- 大小:46.91 KB
- 文档页数:2
java常见错误以及可能原因集锦java常见错误以及可能原因集锦0、需要标识符a) 不在函数内1、非法表达式开始b) 可能:丢失括号 .2. no data founda) 可能:setInt(1,100)中,没有100这个值3. 找不到符号a) 可能:没导入包4. 指定了无效URLa) 可能:数据库名或IP错误,即连接出错5. 类路径没有找到a) 可能: ClassNotFoundException: oracle.jdbc.driver.OracleDriverb) 原因: 一般是指包名写错,或者没有import包,或者没有在类路径中找到jar文件c) 解决: 没有加载Oracle驱动jar,在.bash_profile中把ojdbc14.jar加进来6. 空指针异常a) 可能: 数据源错误比如数据库名或IP错误7. 不能执行查询a) 可能: 数据库中表的问题,比如列名不存在8. invalid identitya) 可能: 列名出错9. 若在数据库中创建了两个sequence ,运行时出现异常可能是先后执行了多次select 语句,导致与原有的序列号产生冲突10. 表名或列名不存在a) 可能:表不存在或者没有插入数据到表中11. 不支持的类,类的版本错误a) 可能:没有导入jdk5.0,或者编译器仍为1.412. MappingNotFoundExceptiona) Maybe: In the Eclipse Not refersh , or not exist in the dirctory13. HibernateException: /hibernate.cfg.xml not founda) Maybe1: hibernate.cfg.xml not in the root directoryb) Maybe2: Could not parse configuration .c) resolve: database not connect or use another database14. ConstraintViolationExceptiona) Maybe: used a not true database15. 驱动没有找到或者 JDBC Driver not found可能:连接数据库的驱动jar包不存在或者版本不一致,比如将旧的版本换成新的会造成该类错误16. 空指针异常,/doc/e411973287.html,ng.NullPointerExce ptiona) 可能1:数据库连接出错,比如在hibernate.cfg.xml中的数据错误会导致异常。
Java找不到或⽆法加载主类及编码错误问题的解决⽅案先给出具体代码(当前⽬录为:D:\pro):package org.test;public class TestJava{public static void main(String args[]){System.out.println("Hello World");System.out.println("你好,Java!!");}}1、 cmd 窗⼝运⾏时出现“找不到或⽆法加载主类”问题:D:\pro>javac TestJava.javaD:\pro>java TestJava错误: 找不到或⽆法加载主类 TestJava出现这种问题的主要原因是程序中有package即包的存在。
所以,我们有两种⽅法对包进⾏处理。
(1)⼿动新建包的⽬录:如在当前⽬录下新建:(d:\pro)–>org–>test然后把编译⽣成的TestJava.class⽂件移动到d:\pro\org\test⽬录下,此时再运⾏java org.test.TestJava就可以输出正确结果了。
D:\pro>javac TestJava.javaD:\pro>java org.test.TestJavaHello World你好,Java!!(2)⾃动创建包的⽬录:运⾏代码:javac -d . TestJava.javajava org.test.TestJava(注意:”-d . “这个点的前⾯是有空格的,否则还是运⾏还是有问题的。
)也能输出正确结果:D:\pro>javac -d . TestJava.javaD:\pro>java org.test.TestJavaHello World你好,Java!!2、 cmd窗⼝运⾏时出现乱码问题:因为我们的系统⼤多是中⽂系统,⽽不少编程软件都是英⽂编译环境,所以,当运⾏含有中⽂的代码时,容易出现乱码问题,这时候需要改变代码的编码就⾏了。
JDK8版本JAVA运⾏错误:找不到或⽆法加载主类HelloJava的原因及解决⽅案JDK8版本JAVA运⾏错误:找不到或⽆法加载主类HelloWord的原因及解决⽅案⼀.安装jdk,配置环境⼆.编写HelloWord代码三.在命令⾏CMD窗⼝中运⾏代码四.错误原因分析,解决⽅案⼀.安装jdk,配置环境1. 安装jdk1.82. 配置Java_HOME:C:\Program Files\Java\jdk1.8.0_2013. 配置path变量:%JAVA_HOME%\bin;4. 在cmd中验证Java、Javac的环境变量是否配置好以及是否安装完成。
运⾏代码之后出现如下运⾏结果之后即表⽰安装完成,同时环境变量也配置好了;⼆.编写HelloWord代码三.在命令⾏CMD窗⼝中运⾏代码1. 使⽤javac编译HelloWord.java程序2. ##### 运⾏HelloWord程序,出现错误: 找不到或⽆法加载主类 HelloWord**四.错误原因分析,解决⽅案当安装Jdk8版本时,系统会⾃动在环境变量path中配置⼀个变量:C:\Program Files (x86)\Common Files\Oracle\Java\javapath。
此变量便是java的路径设置,然后只需在path变量中设置⼀下javac的环境变量:C:\Program Files\Java\jdk1.8.0_201\bin即可,⽆需再设置⼀个classpath变量,若设置之后,则在CMD中运⾏代码时产⽣⼀个错误:错误: 找不到或⽆法加载主类 HelloWord解决⽅案删除⽤户环境变量和系统环境变量中的classpath,重启CMD命令⾏窗⼝。
然后在按照如下⽅式执⾏代码即可HelloWord.class执⾏成功,输出hello,Word。
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项⽬报错‘找不到或⽆法加载主类’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,就这些。
JAVA_HOME,PATH和CLASSPATH的设置及“找不到或无法加载主类”的解决办法变量设置:JAVA_HOME=C:\Program Files\Java\jadk1.7.0 PATH=c:\programfiles\java\jdk1.7.0\bin;c:\progra m files\java\jdk1.7.0\jre\bin;CLASSPATH=C:\ProgramFiles\Java\jdk1.7.0\lib;C:\ProgramFiles\Java\jdk1.7.0\lib\tools.jar;我个人不推荐”.;%JAVA_HOME.................”的设置方法;注意①PATH和CLASSPATH变量值后面的“;”一定要有;②如果没有JAVA_HOME,PATH,CLASSPATH就新建然后再设置;③如果有PATH且它的值不为空,只需修改,就是在后面加上“;c:\programfiles\java\jdk1.7.0\bin;c:\program files\java\jdk1.7.0\jre\bin;”(我个人偏向于在后面加上而不是先删除后再添加其值,因为有其他的程序也有用到该变量的)④设置时以你自己的安装途径为准,(即变量值的盘符及路径以自己安装路径为准)设置完成后就可以再DOS上验证是否安装成功了,具体方法不再细说。
“找不到或无法加载主类”的解决办法出现如图情况:更改CLASSPATH的值;更改为CLASSPATH=C:\ProgramFiles\Java\jdk1.7.0\lib;C:\Program Files\Java\jdk1.7.0\lib\tools.jar;注意后面的“;”再次推荐用我上面提到的变量设置方法;因为有时用“PATH=%JAVA_HOME.................,CLASSPATH=%JAVA_HOME.................的设置”会不能成功安装jdk;更改CLASSPATH的值后就可以了。
eclipse中运行java project报错:>报错信息:could not find the main class,Program will exit>初步分析:第一步就这个问题在google和百度上都搜索了解决方案,很多的解决方案都只是描述的很是简略,不能从根本上解决这个报错的问题,不过也提供了几种解决思路。
下面就按照在项目执行过程中的报错进行了问题的分析和解决方案的整理,并成功的解决了遇到的报错问题。
>问题分析及解决方案:1、JVM版本不一致问题:JVM运行JAVA程序,版本向下兼容,但是如果在高版本上编译过的项目,在低版本的运行环境中,也会出现这个错误;--解决方案:只需要更改eclipse运行环境只想的jdk版本,保持和项目运行环境的版本一致即可2、JDK版本冲突问题:由于开发需要,可能在同一台机器中安装了不同版本的jdk,并且由于环境变量和注册信息冲突出现的jvm冲突,这种情况下运行项目也会出现如上could not find the main class的问题;--解决方案:a-卸载掉本机安装的所有JDK;b-打开注册表,删除注册表项[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft][HKEY_CURRENT_USER/SoftWare/JavaSoft];c-重新安装jdk;d-重新部署eclipse运行环境指向当前安装的jdk即可完成3、eclipse本身指向的jdk版本和当前项目运行的版本冲突出现could not find the main class错误--解决方案:打开Windows->Preferences->Java->Installed JREs,查看当前选中的项目运行默认的jdk版本;对比Windows->Preferences->Java->Compiler,查看Compiler compliance level以及是否Use default comliance settings中的jdk版本;看两者是否一致,不一致修改一致即可解决上述could not find the class的问题4、eclipse当前项目运行的版本冲突出现could not find the main class错误--解决方案:右键单击项目,打开Build Path->Configure Build Path->Libraries,查看当前项目运行环境中包含的jar文件以及JRE System Library版本,看是否包含两个JRE System Library运行的系统环境,确认一个和当前环境一致的JRE System Library[如何查看当前项目运行指向的jdk版本,参考3],将另外一个删除掉,即可解决could not find the main class 的报错问题目前在一个项目的问题解决过程中,暂时就上面的几种方案都进行了初步的摸索并整理了解决的方法,希望能对其他有兴趣的程序猿有一个参考,也希望能就其他的类似报错问题给予补充。
java错误:找不到或⽆法加载主类的解决办法 此类错误的常见解决办法: 1、是因为.java⽂件不在项⽬的src路径内,也就是说源代码未被eclipse编译,字节码不存在⽆法运⾏了在项⽬名上右键 -> Builder Path -> Configure Build Path -> 选择Source⾯板再点Add Folder, 把源代码所在的包路径的上层⽬录加进来,⽽且如果你是把两个类写在⼀个⽂件⾥的话,你在右键选择Run As Java Appication 的时候,要把光标⾄于包括main⽅法的类上 2、最快捷的解决办法是,打开带有main函数的类,ctrl +A (全选)---> ctrl +X(剪切)-----> ctrl+S(保存)--->关闭---->再打开--->ctrl +C (粘贴) ---->OK;⼀句话就是粘出去关闭再粘进来 3、重建Project也⾏。
4、项⽬的Java Build Path中的Libraries中也许某个jar包是不可⽤的,显⽰红⾊叉叉。
这说明系统找不到这个这个jar⽂件,把这个jar删除或者重新加载进来即可。
5、如果上述不⾏,⼤家直接在 cmd 下 javac 然后 java 运⾏试试,如果这都报错,那是你的 jdk 或者 os 环境有问题了。
下⾯是上⾯的⽅法不能解决的问题 今天的项⽬,从同事那⾥拷过来的,他那⾥jdk是1.8,到我这,右键properities⾥的各种jar都引⼊,jre从1.8改到1.7,都改好后还不能运⾏ 找了半天原因,⽹上的各种⽅法都尝试了,还没有解决,后来发现代码根本没有编译,⼜开始尝试,最后终于找到解决⽅法 打开右键,java Compiler⾥⾯,⼀看原来 Compiler compliance level 是1.8,改为1.7后终于ok了。
在cmd窗⼝下运⾏Java程序时⽆法找到主类的解决办法我是Java的初学者,昨天在cmd窗⼝下运⾏⼀段Java程序时总是有问题,可以编译但⽆法执⾏。
也就是javac时正确,⼀旦java时就不对了,提⽰找不到或⽆法加载主类,经百度⾕歌再加上⾃⼰的摸索终于解决了问题。
现在汇总⼀下这类问题的可能解决办法。
1.检查环境变量路径配置错误。
JAVA_HOME是jdk的路径,CLASSPATH是lib路径(记得前⾯要加.;这俩个),Path是bin的路径。
2.更改⼀下CLASSPATH的路径。
⽐如我原来的是.;C:\Program Files\Java\jdk1.8.0_101\lib改为.;C:\Program Files\Java\jdk1.8.0_101\lib\dt.jar;C:\Program Files\Java\jdk1.8.0_101\lib\tools.jar也就是再原来的基础上细化⼀下加上dt.jar和tools.jar。
(我当时试过这个不管⽤,有⼈说好使。
)3.java和javac版本不⼀致。
在cmd窗⼝输⼊java-version和javac-version查看版本是否⼀致,如果不⼀致在Path变量前头加上%JAVA-HOME%\bin4.去掉包名。
也就是把.java⽂件中的第⼀⾏代码package什么什么的给去掉。
5.cmd窗⼝输⼊命令有问题。
javac时是⽂件名加.java,java时什么都不加只是⽂件名。
例如:javac d:HelloWorld.java java d:HelloWorld还有就是⽂件放在⽂件夹⾥了,当然每个⽂件夹要写出来(我⼀般放根⽬录下,⽅便)。
本⼈就是利⽤⽅法4解决的,⾄于其他的⽅法不知道到底可不可以,只是把当时遇到的解决⽅法给汇总⼀下,⾄于为什么要这样,呵呵\笑脸。
关于cmd下用java [.class文件名]会出现“找不到或无法加载主类”的问题
以下将给出解决此问题的方法
1.首先要配置好java的运行环境
a.依次打开计算机管理→高级系统设置→环境变量→在系统变量里设置相关参数
b.新建JAVA_HOME环境变量,并将参数设置为jdk的安装目录,如I:\WIN8\Java\jdk\
c.新建CLASSPATH环境变量,并将参数设置为dt.jar和tools.jar的安装目录,如.;I:\WIN8\Java\jdk\lib\dt.jar;I:\WIN8\Java\jdk\lib\tools.jar在这里添加目录时一定要在最前面添加点号和分号表示显示当前路径(这也就是为什么会出现找不到或无法加载主类的问题)
d.在path环境变量里添加bin的安装目录,如;I:\WIN8\Java\jdk\bin▲注意用分号隔开
2.检查是否配置成功
Win+R→cmd以打开cmd,并写入java –version命令,enter 会出现以下jdk的版本信息,如:
然后写入javac命令,会得到如下信息,如:
3.编译运行简单的java程序
a.新建一个文本文档,将文件名改为Demo
}
结果为:。