用的Myeclipse 8.5拖拽做的。其中导入了一些jar文件。但是打包后,运行是能运行,但一些功能都没了。看了一下,原来打成的jar文件中引用的lib中的jar没有打进去啊怎么弄啊??
我直接将lib放到压缩包src目录下,(和之前在MyEclipse中的目录一样)也是不能正常运行。怎么弄啊??用的MyEclipse带的那种打包-》Export-》Jar file->我的整个项目所有的都选上了,lib目录也选上了。 …………next->next->选Main class->完成但是打出来的却没有lib目录…………是不是这样打??我打包打错了??
里面没有引用其他jar文件的很正常,一引用其他的jar文件打包就不行了。在MyEclipse里运行正常

解决方案 »

  1.   

    新程序打成a.jar
    引用的jar文件可不能打进入 
    修改a.jar的META-INF/MAINFEST.MF文件 
    把引用的jar相对路径添加进入,这样才能调用
      

  2.   


    我的是放在src/lib/***.jar,
    META-INF/MAINFEST.MF文件添加路径要怎样添加啊举一个例子吧,谢谢了
      

  3.   

    你有java课本么?得在系统环境变量里把那个jar文件的所在地址加入classpath中
      

  4.   

    你打包的时候注意看选项是有把jar打包进去的选项的!
      

  5.   

    可以使用 fatjar 或者 one-jar
      

  6.   

    这问题我不知道回复过多少次了,哎!如果会打包,那可能就知道 MANIFEST.MF 这个文件吧,一个 jar 要能运行的话,必须在这个文件中设置 Main-Class: 这个我想已经设置好了。如果要使用到第三方的 jar 包,同样也需要在这个文件中设置一下。需要在这个文件中加上,下面路径前的 xxx/ 先暂时称为 X 目录。Class-Path: xxx/mysql-connector-java-x.x.x-bin.jar xxx/abcdefg.jar xxx/12345.jar多个 jar 以至少一个空格分隔开来。需要注意的是 Class-Path: 后面必须得有一个空格,并且在这个文件的最后必须有两个空格,否则这个文件就是无效的。(MANIFEST 规范相当得死)这还没完,设置好后,把这个设有 Main-Class 和 Class-Path 的 MANIFEST.MF 文件以及 class 文件打包成 my.jar(文件名任意),需要注意的是第三方的 jar 文件不要打包打进去。把这个 my.jar 放在一个目录下,同时在这个目录下新建一个上面的 X 目录,把第三方的那些 jar 文件复制这个 X 目录下,然后返回上一层 my.jar 所在目录,执行 java -jar my.jar 就能成功运行了。另外还有一个方法不需要设置 MANIFEST.MF 的 Class-Path,不过不推荐使用,就是把第三方的 jar 文件复制到 Java 的扩展类加载路径中,也就是在 %JRE_HOME%/lib/ext 目录中。
    【推荐参考文档】[1] JAR MANIFEST, http://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest
    [2] Java Tutorials, Adding Classes to the JAR File's Classpath, http://download.oracle.com/javase/tutorial/deployment/jar/downman.html
    [3] Java Tutorials, Installed Extensions, http://download.oracle.com/javase/tutorial/ext/basics/install.html
      

  7.   

    eclipse .3.6 直接打包runnable jar file. 
    不过,最好你自己练练jar命令, 手动打几次就清楚了.
      

  8.   

    http://download.oracle.com/javase/tutorial/deployment/jar/downman.html
    ---
    Note: The Class-Path header points to classes or JAR files on the local network, not JAR files within the JAR file or classes accessible over internet protocols. To load classes in JAR files within a JAR file into the class path, you must write custom code to load those classes. For example, if MyJar.jar contains another JAR file called MyUtils.jar, you cannot use the Class-Path header in MyJar.jar's manifest to load classes in MyUtils.jar into the class path.eclipse 3.6 
    Rsrc-Main-Class: com.linzuxiong.thinkinginjava.Joining
    Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
      

  9.   

    学习了,我也最近才知道第三方的Jar包不能打进Jar文件,而是要摆在新生成jar的同一目录中,这个问题搞了我好几天时间