当前位置: 代码迷 >> J2SE >> 程序打成jar包有关问题,求教
  详细解决方案

程序打成jar包有关问题,求教

热度:91   发布时间:2016-04-24 00:52:35.0
程序打成jar包问题,求教,在线等
各位大哥,小弟写了个小程序,想打包成jar来运行,但运行起来总是错。
麻烦帮忙看下啊,感激不尽啊

我是这么干的,自己写了个MANIFEST.MF放在程序目录下,程序结构如图:
ProjectName
  |-Src
  |-andy.fanancial.imagepanel
  |-andy.fanancial.login
  |-andy.fanancial.mainframe
  |-andy.fanancial.test
  |-andy.fanancial.user.dao
  |-jdbc.properties
  |-log4j.properties
  |-SqlMapConfig.xml
  |-images
  |-lib
  |-MANIFEST.MF

MANIFEST.MF内容如下:
Java code
Manifest-Version: 1.0Class-Path: lib/commons-logging.jar lib/ibatis-2.3.0.677.jar lib/log4j-1.2.14.jar lib/mysql-connector-java-3.1.13-bin.jarMain-Class: andy.fanancial.login.LoginForm


包打好后,用7z看到引用的几个jar包都在打好的jar包里面了,但运行打好的jar包的时候还是报错:
Java code
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger        at andy.fanancial.login.LoginForm.<clinit>(LoginForm.java:40)Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger        at java.net.URLClassLoader$1.run(Unknown Source)        at java.security.AccessController.doPrivileged(Native Method)        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)        ... 1 more


找不到log4j啊,这种肿么了,求指点。。

------解决方案--------------------
你把项目相关的properties文件放在你打好的jar包相同的路径下试试看。
------解决方案--------------------
MANIFEST.MF放错地方了吧.
------解决方案--------------------
路径里面有中文?
------解决方案--------------------
用fatjar吧,很好用的eclipse打包插件
------解决方案--------------------
使用第三方包的话,需要把第三方包合并到jar包里,或者单独放在外面,在mf文件里进行声明。
切不可把第三方的jar包直接当作文件放在你的jar包内
------解决方案--------------------
在Eclipse或者Netbeans里面导出项目的jar文件,然后采用第三方的打包软件做成exe文件就能运行了。。。
推荐这款exe4j的免费小软件,网上搜一下。
  相关解决方案