郁闷之极!通宵达旦也未能解决!请大家帮忙

godstopokey 2008-01-01 12:38:43
郁闷之极!通宵达旦也未能解决!请大家帮忙
程序打包成jar后,数据库连接错误,但是在JBuilder2006里运行,连接没问题,我用的是直连,sql2005,jdbc驱动是在微软网站上下的sql2005专用的。
在看了其他人相关的问题后,把msbase,mssqlserver,msutil包里的 com 文件夹放需要打包的class文件夹内,还是不能连接:代码如下
————————————————————————————————————————
public ToDb() {
String url = "jdbc:sqlserver://192.168.1.100:1433;database=GodstopokeyDb";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(url,"godstopokey","");
} catch (ClassNotFoundException ex) {
System.out.println("直连错误");
System.out.println(ex.getMessage());
} catch (SQLException ex1) {
System.out.println("数据库连接错误");
System.out.println(ex1.getMessage());
}
}

-----------------------------------------------------------------------
在JBUILDER里运行没问题,可以进行数据增删改查,但是生成jar后,在DOS里运行结果如下:
-----------------------------------------------------------------------




-----------------------------------------------------------------------
请大家帮我找找错误,谢谢!祝大家元旦快乐!:)
...全文
485 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixinye0123 2008-01-01
  • 打赏
  • 举报
回复
要指出jdbc驱动的位置,加到classpath中去好了
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
解决问题了!!!哈哈哈啊哈哈哈

把需要用到的jar包放在class文件夹内,和那些class文件放在一起然后编辑清单

Class-Path: htmlconverter.jar dt.jar tools.jar jsse.jar javaws.jar rt.jar sqljdbc.jar
Main-Class: rayscount/ApplicationMain

就OK了~

所有的包之间一定要用空格!

感谢 java2000_net 给予我的非常大的帮助!

----------------------------------------------------------------------END---------
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
我按你说的那些包 把语句缩短成

E:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath "G:\Java\JBuilder\北京瑞斯康特通讯科技有限公司\rayscount\classes;htmlconverter.jar;dt.jar;tools.jar;jsse.jar;javaws.jar;rt.jar;sqljdbc.jar" rayscount.ApplicationMain

直接在DOS里可以运行,但是在清单里加入后 还是出错,能不能帮我写一个清单,我估计我写错了。。
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
我把所有的包都提取出来 和 class 放在一起 然后再 xx.x里面是这样写的 :
main-class: rayscount/ApplicationMain
Class-Path: rayscount/path/charsets.jar rayscount/path/deploy.jar rayscount/path/dnsns.jar rayscount/path/dt.jar rayscount/path/htmlconverter.jar rayscount/path/indicim.jar rayscount/path/javaw.exe rayscount/path/javaws.jar rayscount/path/jce.jar rayscount/path/jconsole.jar rayscount/path/jsse.jar rayscount/path/localedata.jar rayscount/path/plugin.jar rayscount/path/rt.jar rayscount/path/sqljdbc.jar rayscount/path/sunjce_provider.jar rayscount/path/sunpkcs11.jar rayscount/path/thaiim.jar rayscount/path/tools.jar

当我运行jar a.jar xx.x rayscount 出现错误 说路径太长。。。
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
E:\Borland\JBuilder2006\jdk1.5\lib\htmlconverter.jar;
E:\Borland\JBuilder2006\jdk1.5\lib\dt.jar;
E:\Borland\JBuilder2006\jdk1.5\lib\tools.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\jsse.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\rt.jar;
E:\Borland\JBuilder2006\lib\sqljdbc.jar;

这几个比较常用。
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
我需要把这些包和class放在一起吗?
NO
需要把这些包和a.jar 放在一起。
然后按照我前面给的信息,至少增加 Class-Path:

然后逐个判断,哪个包你用不到。删了 如果你判断不了,就全留着。
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
http://www.blogjava.net/xieyunlong/archive/2005/12/10/23242.aspx

文件可不只有Main-Class 那一个参数哦,把Class-Path:设置好了就OK了!

Manifest-Version: 1.0
Main-Class: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Created-By: Apache Ant 1.5.1
Extension-Name: Struts Framework
Specification-Title: Struts Framework
Specification-Vendor: Apache Software Foundation
Specification-Version: 1.1
Implementation-Title: Struts Framework
Implementation-Vendor: Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 1.1
Class-Path: commons-beanutils.jar commons-collections.jar commons-dig
ester.jar commons-logging.jar commons-validator.jar jakarta-oro.jar s
truts-legacy.jar
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
E:\Borland\JBuilder2006\jdk1.5\lib\htmlconverter.jar;
E:\Borland\JBuilder2006\jdk1.5\lib\dt.jar;
E:\Borland\JBuilder2006\jdk1.5\lib\tools.jar;
E:\Borland\JBuilder2006\jdk1.5\lib\jconsole.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\jsse.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunjce_provider.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\localedata.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunpkcs11.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\dnsns.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\im\thaiim.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\im\indicim.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\plugin.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\charsets.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\jce.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\deploy.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\javaws.jar;
E:\Borland\JBuilder2006\jdk1.5\jre\lib\rt.jar;
E:\Borland\JBuilder2006\lib\sqljdbc.jar;

我需要把这些包和class放在一起吗?
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
这个就能在cmd里面正常运行了,
然后你在尝试删除那些无关的classpath里面的 jar

而且建议路径统一到当前目录下,把需要的jar,都复制到a.jar相同的目录。
否则你给别人用的时候就麻烦了。
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
用上面这些在 DOS 里可以运行!但是……我怎么能打开jar自动运行呢?

sqljdbc.jar 解压缩里的com文件夹和那些 class文件放在一起,打完包一样不能用 我昨天晚上试到2点多,但是为什么有点朋友可以呢?..

还有,先对以java2000_net 为首的帮助我的朋友说声谢谢!:)辛苦了~但是我的问题还没有解决。。。郁闷啊。。
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
GOOD 就是这个,哈哈哈!
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
E:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath "G:\Java\JBuilder\北京瑞斯康特通讯科技有限公司\rayscount\classes;E:\Borland\JBuilder2006\jdk1.5\lib\htmlconverter.jar;E:\Borland\JBuilder2006\jdk1.5\lib\dt.jar;E:\Borland\JBuilder2006\jdk1.5\lib\tools.jar;E:\Borland\JBuilder2006\jdk1.5\lib\jconsole.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\jsse.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunjce_provider.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\localedata.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunpkcs11.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\dnsns.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\im\thaiim.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\im\indicim.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\plugin.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\charsets.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\jce.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\deploy.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\javaws.jar;E:\Borland\JBuilder2006\jdk1.5\jre\lib\rt.jar;E:\Borland\JBuilder2006\lib\sqljdbc.jar" rayscount.ApplicationMain
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
jbuilder 启动你的程序的时候,会同时出现一个控制台,用来显示那些错误信息阿,System.out.println信息阿。

第一行应该就是 命令了,很长的。
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
把sqljdbc.jar 解压缩,然后把目录打包到a.jar里面,这个方法倒是可以采用。呵呵呵!

记得 com 目录也在jar的根目录哦!小心一点。
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
怎么获取jbuilder的运行参数?
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
也不行。。。。
老紫竹 2008-01-01
  • 打赏
  • 举报
回复
jbuilder 自动设置了正确的路径。

呵呵,这到提醒我了,你jbuilder下运行,你应该能拿到jbuilder的运行参数的。在控制台。
就是那个非常长的那个,大概得占几行的。

把它复制出来吧!那个肯定可以用。
qingyuan18 2008-01-01
  • 打赏
  • 举报
回复
执行的时候手动加入classPath试试呢?

java -classPath E:\Borland\JBuilder2006\lib\JDBC\sqljdbc.jar;E:\Borland\JBuilder2006;lib\JDBC\msbase.jar;E:\Borland\JBuilder2006\lib\JDBC\msutil.jar -jar a.jar
godstopokey 2008-01-01
  • 打赏
  • 举报
回复
出现这个错误



还想是说还是没有找到JDBC驱动,可是如果没有正确配置的话,JBuilder怎么可以运行呢?

phyeas 2008-01-01
  • 打赏
  • 举报
回复
先把详细的错误发上来再看吧..
加载更多回复(12)

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧