将程序打入一个jar包中.. jar包中内含一个 MySQL的驱动. 在本地运行正常. 拿到别人机器上就会报 no suitable driver : 错误..
    MANFEST.MF 结构如下
   
MANIFEST.MFManifest-Version: 1.0
Created-By: Saito
Main-Class: Client
Class-Path: lib/mysql-connector-java-5.0.8-bin.jar
  jar包内结构如下.
VoteMIS
  META-INF
    MANIFEST.MF  
  LIB
    mysql-connector-java-5.0.8-bin.jar
  XX.CLASS
  XX.CLASS
  .
  .
  . 
为什么不是本地就会出问题呢???

解决方案 »

  1.   

    我怀疑不是打jar的问题,而是放到别的机器上 后 你的连接DB的URL是否 正确?是否还是本地URL?
    就是你需要确认 DB连接的URL是否正确?只是猜测 楼主可以确认一下 如果你把URL写死在JAVA中后 仅仅建议哈
      

  2.   

    刚开始怀疑是URL 的问题..结果我写的真的是localhost..
    不过已经改过了..不是这个问题
      

  3.   

    是不是你本地别的classpath上的MYSQL的驱动,而实际上不是你JAR包中的MYSQL驱动起的作用吧
      

  4.   

    用这个ant自动打包工具试试
    <?xml version="1.0" encoding="UTF-8"?>
    <!--该文档实现自动打包的功能,系统将打成jar和war包-->
    <project name="framework" default="pack" basedir=".">
    <!-- 定义properies  -->
    <property name="prjectname" value="framework" />
    <property name="version" value="1" />
    <property name="build.dir" value="e:/build" />
    <property name="websource.dir" value="WebRoot" />

    <tstamp>
    <format property="OFFSET_TIME" pattern="HH:mm:ss" offset="10" unit="minute" />
    </tstamp>

    <!-- 初始化任务 -->
    <target name="init">
    <mkdir dir="${build.dir}/${prjectname}" />
    <mkdir dir="${build.dir}/release" />
    <delete file="${build.dir}/${prjectname}/${prjectname}${version}-${DSTAMP}.war" />
    <delete file="${build.dir}/${prjectname}/${prjectname}${version}-${DSTAMP}.jar" />
    </target> <target name="pack" depends="init" description="pack the jar and war file">
    <jar destfile="${build.dir}/${prjectname}/${prjectname}${version}-${DSTAMP}.jar" basedir="${websource.dir}/WEB-INF/classes">
    <exclude name="${websource.dir}/*.*" />
    </jar>
    <jar destfile="${build.dir}/${prjectname}/${prjectname}${version}-${DSTAMP}.war" basedir="${websource.dir}">
    <exclude name="${websource.dir}/*.*" />
    </jar>
    </target>
    </project>
      

  5.   

    既然你的驱动都已经包含在jar包中了 出现这个问题 奇怪啊 肯定不是连接路径的问题 用fat.jar打包应该没问题吧
      

  6.   


    你说对了..还真不是我jar包里面的起的作用..要打在jar包里面要怎么弄呢>  我的为什么不行???
      

  7.   

    把你的classpath里面的MYSQL驱动的 路径 使得和你要打jar包中的MYSQL驱动一致,这样的话 驱动版本就会保持一致的哈