java程序用在eclipse中调试可以运行,但是打包成jar以后连接数据库就失败了

java程序用在eclipse中调试可以运行,但是打包成jar以后连接数据库就失败了,我用的是access数据库,数据库不用打包到jar中,代码如下

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextArea;
import javax.swing.JButton;
import java.io.File;
import java.util.Date;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JScrollPane;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class filetest extends JFrame {
private JPanel contentPane;
private static JTextArea textArea;
private final JScrollPane scrollPane = new JScrollPane();
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
filetest frame = new filetest();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public filetest() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JButton btnNewButton = new JButton("New button");
btnNewButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
textArea.setText("");
String s=(String)JOptionPane.showInputDialog(null, "输入数据库路径:", "C:\\Documents and Settings\\Administrator\\桌面\\test.mdb");
access(s);
}
});
contentPane.add(btnNewButton, BorderLayout.SOUTH);
contentPane.add(scrollPane, BorderLayout.CENTER);
textArea = new JTextArea();
scrollPane.setViewportView(textArea);
}

public static void println(String s) {
textArea.append(s+"\n");
}
public static void access(String s) {
String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+s;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from users");
while(rs.next()){
String str = rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3) + "";
println(str);
}
}catch(Exception ex){
println(ex.toString());
ex.printStackTrace();
}
}
}
我查出来了是java的运行环境有问题;重装了一下jdk就好了

你是在cmd下用命令执行的吧
你在代码里调用了连数据库的包,在你的classpath里找不到连数据的包的时候就会找不到,我猜应该包的是classNotFound错误
解决办法是手动修改jar里的MANIFEST.MF文件,好像是加入lib这个属性,把你应用到的jar包设置一下地址,具体你还得查,我就不帮了,弄好后希望在你的问题里给大伙解答一下
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-05
打成jar包默认的话
1.相应的lib有没有加入classpath,或者放在jar包文件夹里
2.MANIFEST.MF里有没有把用到的lib加进去
如果是数据库的话,jdbc驱动总是要加一下的
必要贴一下exception本回答被网友采纳
第2个回答  2011-07-13
你没将你的jar包导入到构建路径里面去吧?
方法:右键你这个包,add to buildpath。。
第3个回答  2011-07-13
是不是打包的时候出问题了呀。还有。路径里面少出现汉字吧

java程序在Eclipse中运行没有问题,打包成.jar文件之后运行后路径出现...
1.普通windows文件系统:file:\\D:\\MapModule\\img\\map\\map.jpg \/\/你一定要在这个路径上有文件才能读写 2.jar文件中的文件:jar:file:\\D:\\MapModule.jar!\\img\\map\\map.jpg 区别一眼就看出来了(2中有jar前缀,并且有'!')。给你一个获取输入流的方法:URL url=new URL("jar:file:\\D:\\Ma...

Java读串口,Eclipse中可运行,打jar包后不可运行
首先不用通过直接双击的办法运行,看不到错误,使用命令行运行看看是什么异常。一般我都是使用java -cp选项指定lib下的jar包,如果需要双击运行可以用exe4j做成exe文件

...正常在Eclipse中启动没问题,用maven达成jar包运行后出现重定向次数过...
回答:看下 spring.mvc.view.suffix的配置是否是.jsp

Java程序能正常运行出结果,但为什么导jar包的时候结果不完全?_百度...
是路径的问题,注意改路径 Icon h1=new ImageIcon("E:\\\\tupian.gif");你把jar文件转到别的机器 肯定不是这台机器一样是E盘的根目录了 所以 请把路径改正确 用项目绝对路径

为什么把java项目导出成jar文件后,不能连接数据库了?
eclipse中自带的导出JAR功能,不能连带着导出我们导入的包。建议使用fat jar

java 用SWT开发软件,打包为jar无法出现界面
通常来说,在eclipse等IDE开发的java项目,若在IDE中能正常跑的话,不一定打成jar包也能跑 1 如果项目有依赖包的话,简单打成jar是不能跑的,建议用fatjar插件打包 2 若无其他依赖包的话,不能正常运行就是程序启动有问题,可以通过CMD窗口来执行jar包,看看是否有异常输出....

为什么Eclipse建的Java项目打成jar包执行不了,老是报错
有可能是项目引入的jar包没有打入到jar中,建议用专门的jar打包插件比如fatjar

...我在Win7 eclipse下运行可以 但是拷到虚拟机里面 XP系统后就出现错误...
JKD版本跟系统版本不兼容,32位或者64位,必须一致。

java导出的jar文件不能访问数据库
你肯定是出现了数据库不能连接的问题。后来我解决了。你打成JAR包的以后,用RAR压缩软件打开JAR包,把里面的全部数据库驱动包删除,是全部删除(但是你自己写的连接数据库的类不能删除)。。你人工解压数据库驱动包,把解压后的里面的文件全部拖入jar中。注意设置的路径问题。详细路径你看你自己写的连接...

为什么Eclipse导出的可运行的jar文件,导出后双击后没反应?
jar 文件要在命令行里运行,开始->运行(XP)\/在搜索程序和文件对话框里->里输入cmd->在弹出的cmd框中键入:java -jar 你的JAR文件完整路径和名称.jar -> 回车,就可以运行了。普通双击是没用的(并没关联到 java 并以-jar参数运行),甚至常常被当做一个类似rar的包打开。

相似回答