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 thread "main" java.lang.NoClassDefFoundError` 是Java编程中常见的一个运行时异常,通常发生在尝试运行一个Java程序时,如果JVM找不到在类路径(ClassPath)中定义的主要类(主类,即包含`public ...
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...
"java.lang.NoClassDefFoundError错误解决办法" java.lang.NoClassDefFoundError错误是一种常见的Java错误,它发生在Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。下面是该错误的解决...
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject,是因为缺少java-json.jar-附件资源
敲黑板 ,引入的依赖 一定要 “compile” 或则 “runtime”,否则spark conf 无法初始化,这辈子也运行不了,千万不要是 “provided”. org.apache.spark spark-sql_2.11 ${spark.jar.version} ...
flink-hadoop-compatibility_2.12-1.7.1.jar javax.ws.rs-api-2.0.1.jar jersey-common-2.27.jar ...Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jersey/api/client/config/ClientConfig
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: com/sun/jersey/api/client/config/ClientConfig at org.apache.hadoop.yarn.client.api.TimelineClient.createTimelineClient(TimelineClient.java:...
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.如果运行程序...
### Red Hat Enterprise Linux 6 (RHEL6) 安装 Oracle 11g R2 的详细步骤 #### 一、概述 在Red Hat Enterprise Linux 6 (RHEL6) 上安装 Oracle 11g R2 数据库是一项重要的系统管理任务。此过程涉及到系统的配置调整...
NULL 博文链接:https://coolzhi.iteye.com/blog/665516
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) ...
发现问题 早上起来报错误,Jenkins打包到tomcat服务器,死活启动不起来... java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFi