问题描述:
项目目录结构
└─smartAS
    ├─client
    │  ├─bin
    │  ├─gui
    │  ├─icons
    │  └─lib
    └─server
smartAS是最上层的包名。数据库驱动empressJDBC_cat4.jar在client下的lib文件夹里。现在打包命令为:(在smartAS所在目录执行)
jar cmf mainclassCL.txt client.jar smartAS/client/*mainclassCL.txt内容为:
Main-Class: smartAS.client.Client
Class-Path: smartAS.client.lib.empressJDBC_cat4.jar但是运行client.jar却找不到数据库驱动!
程序中加载驱动的语句为:
Class.forName("com.empress.jdbc4.empressDriver");
//throw ClassNotFoundException!请问这是咋回事呢?

解决方案 »

  1.   

    请勿将你的驱动jar文件和你的jar文件打到一起在运行的时候指定classpath到你的驱动jar文件就搞定了
      

  2.   


    你说指定到empress的安装路径去找其jdbc的驱动?
    那样的话,如果数据库empress的安装路径不同,岂不是要改程序?
    汗,当然是放到jar里面好啊。
      

  3.   

    这个问题怎么和
    http://community.csdn.net/Expert/TopicView3.asp?id=5585995
    类似。
    我已经在那里回答过了。你可以把数据库驱动拷到 %JAVA_HOME%/jre1.5.0_01/lib/ext 目录下就可以了。
      

  4.   

    那样不方便啊,我做的是个c/s的程序,客户端不安装数据库,只是去服务器取数据啊。
    不能要求每个客户都自己去下载那个数据库的驱动,然后放到%JAVA_HOME%/jre1.5.0_01/lib/ext吧?
    所以还是做成一个包最好啊。
    记得以前可以用的,后来咋不行了。另外,再后来又这样了——
    请问:java -jar app.jar 可以运行,双击却不能(could not find the main class),为啥?
    以前都ok的,做成的jar可执行文件都可以双击运行,后来装了点啥软件,所有的jar可执行文件都不能双击运行了,连sdk里的demo也不行了。
    但在命令行用 java -jar app.jar就可以的。
    应该是环境变量的问题,具体是啥呢?
    谢了先!