把驱动一起打到jar包里去,然后在MANIFEST.MF中指定可以运行的主类

解决方案 »

  1.   

    哦,这样啊
    那么mf应该怎样配置啊?
    拜托。
    驱动得程序是mybase.jar,mssqlserver.jar,msutil.jar
      

  2.   

    我用过两种方式
    1
    MANIFEST.MF内容:
    Manifest-Version: 1.0
    Class-Path: mybase.jar mssqlserver.jar msutil.jar
    Created-By: 1.4.0 (Sun Microsystems Inc.)
    Main-Class: 包含main函数的主类这种方式mybase.jar,mssqlserver.jar,msutil.jar三个文件不用打在server.jar中2
    MANIFEST.MF内容:
    Manifest-Version: 1.0
    Created-By: 1.4.0 (Sun Microsystems Inc.)
    Main-Class: 包含main函数的主类这种方式打包的时候要把mybase.jar,mssqlserver.jar,msutil.jar三个文件解开,和你的程序包一起打成jar文件
      

  3.   

    楼上得,十分感谢。
    补充一点,如果主类要用到当前得副类得话,要再mf文件得classpath后面加 .
    第一种试了,能用,就算是删除了jre/lib/ext下面得驱动类也行得,谢谢。第二中,我试了,不行。
    主要是我使用得类文件要互相调用得,当打包第一个文件到package com.classes;时,报错,说时com.classes.某某类不存在,就是在第二个文件中得类不存在。而我编译第二个文件时,出现了同样得情况,就是第一个文件得类找不到。
    咋办???????
      

  4.   

    打包前就编译好了啊jar cvfm server.jar MANIFEST.MF 你的包 驱动的包1 驱动的包2 ...
    打到jar包里的不同文件夹用空格分开
      

  5.   

    现在又有一个问题,当我用第一种方法打包后,在当前文件下运行,可以。
    但是,当把.jar文件转道其它文件是,说找不到properties文件和驱动,但是我的确把它们打包进去了。jar cvfm server.jar server.mf *.class *.properties
    我需要把properties文件和驱动连带拷到.jar文件所在的文件夹下,才能运行。
      

  6.   

    还有我遇到的交叉调用的问题怎么办?
    我以前是因为在没有调用其它文件是就生成.class文件了,所以才不会识别不出。
    可是,如果我在没有生成.class文件时就互相调用,就不可识别了。
    咋办?
      

  7.   

    我用第二种方法试过了,驱动可以了,但是找不到.properties文件,我已经打进去了。
    jar cvfm server.jar server.mf *.class *.properties com
    可是仍然找不到,只有加到生成得.jar文件所在得文件夹中才能运行。