自己写了一个简单的小程序,并打成了可执行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请帮忙,谢谢

解决方案 »

  1.   

    第三方包如果不拆解成 class 打到 jar 里面去是没有用处的!你在 MANIFEST.MF 都把 Class-Path 加上去了你运行时只要把 log4j-1.2.15.jar 跟你的 jar 文件放在一个目录下就能运行了。
      

  2.   

    楼上的意思是说,把第三方jar打入也没用,运行的时候照样找不到类?不过目前看来也确实是这样,并不会根据Class-Path: log4j-1.2.15.jar 去到jar包里找Log4j的类,导致运行不了,所以现在我直接把log4j源码和我的java包放一起编译成.class后打包的。这看来实现不了一个jar了?
      

  3.   

    我以前到这个架包也发过一个帖子到现在也还没有解决 
    我的如果只有几个架包的话 就行  如果架包多了 就不行 和楼主报一样的错
    后来搞得我只好将Java工程改为web工程
    我用fatjar试过也不行不知道楼主现在解决没有
      

  4.   

    回楼上的,我的就一个简单的小桌面程序,就引入了LOG4J,其他的都没用。看来还得继续第一个版本啊,用源码,JAR包方式算是没戏