代码在eclipse下不报错,在doc命令行下报错
来源:互联网 发布:java处理引号 编辑:程序博客网 时间:2024/06/09 13:46
今天开发一个小工具,引用了Log4j,来记录日志,在eclipse下运行,代码正常,打包成jar放到doc命令行下运行报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
at miaogen.zeng.util.jdbc.Configuration.<init>(Configuration.java:20)
at miaogen.zeng.util.jdbc.Configuration.getInstance(Configuration.java:37)
at miaogen.zeng.service.index.main(index.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
试了百度上各种方法。后来试了下导出 runable jar file试试。运行成功!
jar file和runable jar file 导出后的区别如下图:
runable jar file:
jar file:
META-INF的文件区别
下文是转载的解释
直接运行 .class的方法 java -cp . com.network.Chat , 不用加.class后缀
从eclipse中export 的jar file,仅仅是把.class打包了。所以执行这种jar file需要用 java -cp .;ch04.jar com.thnkjava.ch04, 如果你还应用到另外的lib库,你必须在cp里说明,也就是 java -cp .;ch04.jar;lib01.jar;lib02.jar com.thnkjava.ch04 来执行。事实上可以发现ch04.jar也在cp里面,说明ch04.jar就是lib库,最后的参数指明了要被执行的类名。
如果从eclipse里export出的是 runnable jar file,那么个执行这个jar包的时候是不需要指明哪个类的,直接这样执行 java -jar ch04.jar。原因就是jar包中的MANIFEST.MF内容不同。 runnable jar包中指明哪个类先执行,所以你可以用 java -jar ch04.jar来执行你想要执行的代码,而不必指明具体哪个类。这个你可以打开 jar包查看MANIFEST.MF的区别,一目了然。
生成runnable jar file时,有两个选项,Extract required libraries into generated JAR 和 package equired libraries into generated JAR。 前者是把你用到的.class 文件提取出来,后者则是把你所需要的所有jar包都打进一个包里。两者的MANIFEST.MF文件内容也有所不同,这应该是eclipse造成的,IDE 做了自己的事情,具体就不研究了。
- 代码在eclipse下不报错,在doc命令行下报错
- 在eclipse中加入jdk doc
- Java在Eclipse下的代码统计
- Eclipse下在github托管代码
- Eclipse下在github托管代码
- Java在cmd下编译eclipse代码
- 在ubuntu_linux下安装eclipse以及运行c++程序的安装步骤.doc
- Windows下在命令行实现cl.exe编译代码
- 在命令行下运行php代码 和 文件
- 在命令行模式下如何编译运行Java代码
- 在 Eclipse 中使用命令行
- 在 Eclipse 中使用命令行
- 在doc下启动Oracle服务
- doc转html在tomcat8下乱码
- 在doc窗口下使用mysql数据库
- 在Eclipse上安装插件springsource-tool-suite详解,完美不报错!&&yml为何没有提示消息?
- 在Eclipse上安装插件springsource-tool-suite详解,完美不报错!以及yml无自动提示?
- 在VS中使用scanf()不报错的方法
- ant build基本概念
- vim处理字符的大小写转换
- JDBC学习第一天
- java加载spring配置文件
- 腾讯面试总结
- 代码在eclipse下不报错,在doc命令行下报错
- 针对物联网中MQTT协议的学习_客户端代码学习笔记(二)
- 国外网站上解决SetupDiEnumDeviceInterfaces返回false的方法 (转)
- oc基础(部分)
- ActiveMQ的优点
- 关于同一台电脑启2个tomcat问题
- BFS 搜索 Problem 1009 连连看
- python 学习知识点一
- Spring注解详解