如何将第三方jar文件打入jar文件

长公子冰 2009-08-23 01:34:22
自己写了一个简单的小程序,并打成了可执行jar文件,后来需要引入log4j记录日志,由于不知道如何将用到的log4j.jar也打入包,目前的做法是将log4j的源代码与自己的代码写到一起编译后再打包,觉得这么做很不好,网络上找了一下将三方jar打入自己的包的方法,试验过无效,不知道什么原因,提示“Could not find the main class. Problem will exit”。其实并不是找不到程序入口主类,而是主类中用到的log4j引入类没找到。

目录结构
.
com/
/..
image/
/xx.jpg..
META-INF/
/MANIFEST.MF
log4j.properties
lib/
/log4j-1.2.15.jar

其中MANIFEST.MF文件配置如下:
Manifest-Version: 1.0
Created-By: 1.5.0-beta (Sun Microsystems Inc.)
Main-Class: com.xxx.Xxx
Class-Path: log4j-1.2.15.jar

请帮忙,谢谢
...全文
221 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
长公子冰 2009-08-23
  • 打赏
  • 举报
回复
回楼上的,我的就一个简单的小桌面程序,就引入了LOG4J,其他的都没用。看来还得继续第一个版本啊,用源码,JAR包方式算是没戏。。。
xiaozejun 2009-08-23
  • 打赏
  • 举报
回复
我以前到这个架包也发过一个帖子到现在也还没有解决
我的如果只有几个架包的话 就行 如果架包多了 就不行 和楼主报一样的错
后来搞得我只好将Java工程改为web工程
我用fatjar试过也不行

不知道楼主现在解决没有
长公子冰 2009-08-23
  • 打赏
  • 举报
回复
楼上的意思是说,把第三方jar打入也没用,运行的时候照样找不到类?不过目前看来也确实是这样,并不会根据Class-Path: log4j-1.2.15.jar 去到jar包里找Log4j的类,导致运行不了,所以现在我直接把log4j源码和我的java包放一起编译成.class后打包的。这看来实现不了一个jar了?
  • 打赏
  • 举报
回复
第三方包如果不拆解成 class 打到 jar 里面去是没有用处的!

你在 MANIFEST.MF 都把 Class-Path 加上去了

你运行时只要把 log4j-1.2.15.jar 跟你的 jar 文件放在一个目录下就能运行了。
maven到底是什么?    Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]    这种又是大白话,如果没明白maven是什么,那么上面这句话跟没说一样,我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。    所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧