java命令用法出现
Exception in thread "main" java.lang.NoClassDefFoundError:demo/Hello
Caused by: java.lang.ClassNotFoundException:demo.Hello
或者
Exception in thread "main" java.lang.NoClassDefFoundError: Hellmo/Hello)
的问题。
网上搜了一下,貌似都写的差不多
自己试验了一下
解决方案:
1. 检查classpath的配置:JDK1.5以上版本可以不配置,如果要配置的话最前面一定要加上.;
2. 要看你的Java文件是否带有包名:
在src目录下有一个Hello.java(不带包名),javac Hello.java后会在src目录下生成
Hello.class文件,
src
| Hello.java
| Hello.class
此时执行java Hello是没有任何问题的
现在在src下新建一个目录demo01,同时建立Hello.java(带包名),
Hello.java:
package demo01;
...
此时编译:
1) javac Hello.java
生成的目录如下:
src
| demo
| Hello.java
| Hello.class
如果此时的目录是demo,运行java Hello或者java demo01.Hello都会报上述的错误
此时先回到上层目录:src下,再运行java demo01.Hello就会没有任何问题
1) 在demo目录下运行javac -d . Hello.java
生成的目录如下:
src
| demo
| Hello.java
| demo
| Hello.class
这样的话不管怎么运行都是会报错的
纠正一下上面的话.如果现在就在src\demo目录下的话,运行java demo.Hello是没有问题的
3. 另一个问题:
在src建立Hello.java(带包名)
Hello.java:
package demo01;
...
编译javac Hello.java, 会在src目录下生成Hello.class
src
| Hello.java
| Hello.class
运行java demo01.Hello 会报错
此时应该这么编译才行:
javac -d . Hello.java
src
| Hello.java
| demo01
| Hello.class
对于javac命令的总结:
javac 类名.java(如果有包) 会直接生成 类名.class文件
javac -d . 类名.java(如果有包) 会生成相应的 文件夹(也就是所谓的包)和相应的类名.class文件
4. 把src和classes文件分开,这样看的会比较清楚
比如在hellapp目录下建立src和classes文件夹
在src文件间下建立目录demo,在demo目录下建立Hello.java.
此时进入到helloapp目录下,运行命令:
javac -d classes src\demo\*.java
(注:如果你用的编辑器是sublime text,并且你的代码里有中文,为了避免警告和错误,请使用如下命令,指定编码:
javac -encoding utf-8 -d classes src\demo\*.java)
helloapp
| src
| demo
| Hello.java
| classes
| demo
| Hello.class
要运行Hello程序,需要先进入到classes目录下,然后运行java demo.Hello
或者可以在任意目录下:java -cp ...\helloapp\classes demo.Hello
5. 某些时候要依赖一些jar文件,比如做Hibernate应用的时候,在编译程序的时候需要指定classpath,运行的时候也要指定classpath,并且这些依赖的jar文件需要一一指定,没法用*.jar的形式.囧。。。这时候用Ant当然会方便简单许多了.
尼玛,重新编辑之后格式都乱了
相关推荐
出现Exception in threadmain java.lang.NoClassDefFoundError的各种可能情况.doc
主要介绍了Exception in thread main java.lang.NoClassDefFoundError错误解决方法,需要的朋友可以参考下
Exception in thread "main" java.lang.NoClassDefFoundError: javax/mail/Message at com.bulktree.mail.SimpleMailTest.mail(SimpleMailTest.java:30) at com.bulktree.mail.SimpleMailTest.main(SimpleMailTest...
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject,是因为缺少java-json.jar-附件资源
主要介绍了java.lang.NoClassDefFoundError错误解决办法的相关资料,需要的朋友可以参考下
敲黑板 ,引入的依赖 一定要 “compile” 或则 “runtime”,否则spark conf 无法初始化,这辈子也运行不了,千万不要是 “provided”. org.apache.spark spark-sql_2.11 ${spark.jar.version} ...
Exception in thread "main" Java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException 或者: Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang....
运行Sqoop报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avro/LogicalType,下载此资源放到Sqoop的lib目录下即可
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/core/runtime/IProgressMonitor at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class....
如果你用myEclipse进行开发的话,运行时可能会出现以下的错误 Exception in thread main java.lang.NoClassDefFoundError commailutilLineInputStream,解决办法详见文档
1.如果运行程序出现错误:“Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory”,这是因为项目缺少slf4j-api.jar和slf4j-log4j12.jar这两个jar包导致的错误。 2.如果运行程序...
redhat6 安装oracle 11g
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
LINUX 安装ORACLE笔记
1、如果报了如下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger 那是因为没有把log4j-1.2.13.jar倒入到工程中。 2、如果报了如下错误: org.smslib.GatewayException:...
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics at okio.Okio.source(Okio.kt) at okhttp3.internal.io.RealConnection.connectSocket(RealConnection.java:144) ...
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 原因是jar包版本不统一,解决方法如下: 删除Java EE 5 Libraries/javaee.jar/mail里的包有东西. 具体方法如下: 用...
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function at com.yy.baidu.testBaidu.main(testBaidu.java:12) Caused by: java.lang.ClassNotFoundException: ...
Exception in thread "main" java.lang.NoClassDefFoundError: pxb/android/dex2jar/v3/Main Caused by: java.lang.ClassNotFoundException: pxb.android.dex2jar.v3.Main at java.net.URLClassLoader$1.run...