java找不到或无法加载主类XXX
- 格式:doc
- 大小:46.00 KB
- 文档页数:2
IDEA2020.1启动SpringBoot项⽬出现java程序包:xxx不存在
本地启动springboot项⽬⼀直报⼀个⼯具类的找不到,但是我看了好⼏次,那个类明明就在项⽬中,不知道为什么⼀启动项⽬就报错,,说这个包xxxx不存在,,弄了我⼀晚上没睡好觉,,整的我都快开始怀疑⼈⽣了,。
我是谁?我在那?我还适合敲代码吗?
Error:(3, 38) java: 程序包org.springframework.stereotype不存在
Error:(4, 47) java: 程序包org.springframework.web.bind.annotation不存在
Error:(5, 47) java: 程序包org.springframework.web.bind.annotation不存在
Error:(7, 2) java: 找不到符号
符号: 类 Controller
Error:(10, 6) java: 找不到符号
符号: 类 ResponseBody
位置: 类 com.test.controller.HelloController
Error:(11, 6) java: 找不到符号
符号: 类 RequestMapping
位置: 类 com.test.controller.HelloController
解决⽅案:
到此这篇关于IDEA2020.1启动SpringBoot项⽬出现java程序包:xxx不存在的⽂章就介绍到这了,更多相关IDEA2020.1 java程序包不存在内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多
多⽀持!。
java运⾏显⽰“找不到或⽆法加载主类”1.由于是在运⾏阶段出现的问题,那么可能是环境变量配置不当的问题,即可能是classpath路径配置错误,⽽导致.class⽂件⽆法加载。
那么此时你可以检查是否配置好classpath路径,⼀般来说classpath路径配置如下:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (注意前⾯的 . 以及;缺⼀不可)其中.表⽰当前路径,;表⽰分隔符。
2.如果试过了很多次,classpath也配置对了,依旧出现这个错误,注意你使⽤的测试代码,是否在某⼀个包名的下⾯;⽐如说如下测试代码:在⽂件所在的当前⽬录下,运⾏javac TestPlusPlus.java编译成功,⽣成TestPlusPlus.class⽂件,这个时候,你⽤java TestPlusPlus想运⾏程序,总会出现”找不到或⽆法加载主类“的错误。
这个时候要注意,之所以找不到,是因为TestPlusPlus在HelloWorld包名的下⾯。
解决办法:1.去掉 ”package HelloWorld;“ 重新⽤javac 编译TestPlusPlus.java,再运⾏javaTestPlusPlus就可以了。
2.新建⼀个包名⼀样的⽂件夹,在本例中,为建⽴⼀个HelloWorld的⽂件夹,把TestPlusPlus.java⽂件移到该⽬录下。
然后在HelloWorld⽂件夹的平级下,打开DOS命令窗⼝,运⾏javacHelloWorld/TestPlusPlus.java编译程序,运⾏javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),则可以运⾏含有包名的java程序。
注意:包名不要含有'.'(点),' '(空格)等特殊符号,这样的话命令⾏⽆法判断包名与java程序名的分割点在哪⾥,从⽽还是找到或者⽆法加载主类。
The Tomcat installation directory is not valid. It is missing expected file or folder common/i18n. eclipse 配置使用apache-tomcat-5.5.34时,提示如上。
换了个apache-tomcat-5.5.29 的版本。
但是加载启动项目时,出现类加载器无法加载类。
因为apache-tomcat-5.5.29 版本中缺少类加载器的类。
Caused by: ng.ClassNotFoundException: org.apache.catalina.loader.WebappLoader在\apache-tomcat-5.5.29\conf\Catalina\localhost 下会有项目配置的比如project.xml运行生成。
这样启动的时候才会把项目加载上。
在eclipse\plugins\com.sysdeo.eclipse.tomcat_3.2.1 找到DevLoader.zip文件夹。
1、在eclipse目录下,找到DevLoader包,位于eclipse\plugins\com.sysdeo.eclipse.tomcat_3.2.1的DevLoader.zip2、复制DevLoader.zip到Tomcat apache-tomcat-5.5.29 的\lib下。
3、解压缩DevLoader.zip在当前文件夹,然后把\DevLoader 下的org文件夹全部copy到\apache-tomcat-5.5.29\server\classes下。
必须是server\classes 下,而不能是apache-tomcat-5.5.29\common\classes 下。
4、这样就可以了。
tomcat\lib下的devloader.zip devloader文件夹现在都可以去掉了。
Caused by:ng.ClassNotFoundException: org.apache.catalina.loader.WebappLoader该类在apache-tomcat-5.5.29\server\lib\catalina.jar 下。
解决springboot启动找不到主类的问题springboot 启动找不到主类
利⽤eclipse的maven插件,清理了了⼀下springboot的项⽬,结果再启动就找报找不到主类的错误了。
原因:
是你清理了编译好的class⽂件。
解决办法是:
使⽤maven插件的命令 package 进⾏编译就好了。
就是在输⼊jetty:run 那⾥换成 package
springboot错误: 找不到或⽆法加载主类
⼀:当在eclipse启动spring boot项⽬时出现问题:
springboot错误: 找不到或⽆法加载主类
解决办法:
1,通过cmd命令⾏,进⼊项⽬⽬录进⾏,mvn clean install 进⾏编译
项⽬install后,再到eclipse 上选中项⽬按F5刷新项⽬。
再运⾏即可问题解决。
2,在eclipse 上选中项⽬
点击clean 清理项⽬再运⾏问题解决。
3,如果运⾏还是出现⽆法加载主类,
(a)排查项⽬代码是否有问题,
(b)可以进⼊cmd, cd 进⼊项⽬⽬录
执⾏命令:
mvn clean compile
mvn install
mvn spring-boot:run
上⾯三个命令进⾏编译,启动。
注意:⽤cmd命令启动要配置好maven环境,jdk环境。
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
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文件的完整路径名称。
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了。
HBase安装之后版本的验证的bug:(错误的替换、找不到或⽆法加载主类、SLF4J)问题描述:验证Hbase是否安装成功时爆出⼀⼤堆信息:/usr/local/hadoop/libexec/hadoop-functions.sh: ⾏ 2360: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:错误的替换/usr/local/hadoop/libexec/hadoop-functions.sh: ⾏ 2455: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS:错误的替换错误: 找不到或⽆法加载主类 org.apache.hadoop.hbase.util.GetJavaPropertySLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See /codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]HBase 2.2.2Source code repository git://6ad68c41b902/opt/hbase-rm/output/hbase revision=e6513a76c91cceda95dad7af246ac81d46fa2589Compiled by hbase-rm on Sat Oct 19 10:10:12 UTC 2019From source with checksum 4d23f97701e395c5d34db1882ac5021b解决⽅式⼀:修改 hbase-env.sh ⽂件(hbase-env.sh 在 hbase 安装⽬录下的/usr/local/hbase/conf ⽬录下)将hbase-env.sh ⽂件最后⼀句:前⾯的注释去掉。
Day81_错题集Day81_错题集今天错的题有点多,得好好加油了,多背知识点,加油。
路不是⽩⾛的,每多熬⼀个⼩时,你的⼯资就多⼗块钱。
加油先定个⼩⽬标:每天做20-30道题把。
加油1、在java中,下列对继承的说法,正确的是()⼦类能继承⽗类的所有成员⼦类可以继承⽗类所有成员,只是对某些成员具有访问权限(private),访问不了private。
2、It is an important feature of the Java language that it always provides a default constructor to a class.False题⽬:总是为⼀个类提供了⼀个默认的构造函数是Java语⾔的⼀个重要特性。
事实上只有在我们没有显⽰声明任何构造⽅法时java才会为我们提供⼀个默认的⽆参构造函数。
3、以下声明合法的是public final static native int w( )<==这个是对的,下⾯三个都是错的 native是⽅法修饰符default String s --->>default不能修饰变量abtract double d ---->>抽象不能修饰常量abstract final double hyperbolicCosine( ) ---->>抽象⽅法不能⽤final,因为抽象就是为了给⼈重写,加了final不可变,所以是错的。
4、结构型模式中最体现扩展性的模式是()装饰模式--->>正确答案合成模式桥接模式适配器a.适配器模式 Adapter适配器模式是将⼀个类的接⼝转换成客户希望的另外⼀个接⼝。
适配器模式使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类可以⼀起⼯作。
两个成熟的类需要通信,但是接⼝不同,由于开闭原则,我们不能去修改这两个类的接⼝,所以就需要⼀个适配器来完成衔接过程。
b.桥接模式 Bridge桥接模式将抽象部分与它的实现部分分离,是它们都可以独⽴地变化。
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的值后就可以了。
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文件的完整路径名称。
3.原因(3)的解决方法
当类的定义中包含包时,例如类Hello定义了包:package duomu.demo;包实际上就是文件夹,定义包就是将Hello.java文件放入duomu\demo目录下,然后通过命令行编译Hello.java文件时需要将命令行目录切换到Hello.java所在的目录,而执行Hello.class文件时,需要将命令行目录切换到Hello类所属包duomu\demo的上级目录,方可运行成功;否则会提示“找不到或无法加载主类Copy”。