当前位置:编程学习 > JAVA >>

用eclipse打包后在别的机子连接数据库问题,急~~~~~~~~~

我在eclipse下写了个JAVA系统,打包JAR文件(里面有连接数据库的驱动文件了)后在自己的机上可以运行,拉过去别人的机上一点连接就出异常消息窗口提示(自己弄的),点注册(也是要连接数据库的)就一直卡在注册界面没反应。于是我把eclipse整个拉到对方的机上,在他的eclipse下运行就没问题,用他的eclipse打包的JAR文件(里面也有数据库驱动文件),在他机上还是出现上面的问题,拉到我机上又可以。。。。。求解!!!!!!数据库IP没问题,他机上的JAVA环境变量的应该也没问题吧,不然他怎么能用eclipse运行成功。。。谢谢大神门来解救我~~~~~~~~~~~~ --------------------编程问答-------------------- 以下是登陆界面代码:
private void dialog_connect(){

dialog_connect=new JDialog(this,"连接到试题库");
dialog_connect.setSize(220,120);
dialog_connect.setLocation(200, 100);

dialog_connect.setDefaultCloseOperation(HIDE_ON_CLOSE);
dialog_connect.setResizable(false);
dialog_connect.setLayout(new FlowLayout());

dialog_connect.add(new JLabel("用户名: "));
text_user=new JTextField(12);
dialog_connect.add(text_user);
dialog_connect.add(new JLabel("密 码: "));
text_password=new JPasswordField(12);
dialog_connect.add(text_password);
button_connect=new JButton("连  接");
dialog_connect.add(button_connect);
JButton exit=new JButton("退出");
dialog_connect.add(exit);
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dialog_connect.setVisible(false);
}
});
 JButton reglster=new JButton("注册");
 dialog_connect.add(reglster);
dialog_connect.setVisible(true);
reglster.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
 dialog_reglster=new JDialog();
dialog_reglster.setTitle("注册用户");
dialog_reglster.setSize(200, 150);
dialog_reglster.setLayout(new FlowLayout());
dialog_reglster.setVisible(true);
dialog_connect.setVisible(false);
dialog_reglster.setLocation(200, 100);
dialog_reglster.setDefaultCloseOperation(HIDE_ON_CLOSE);
dialog_reglster.setResizable(false);
dialog_reglster.add(new JLabel("用户:"));
 user=new JTextField(12);
dialog_reglster.add(user);
dialog_reglster.add(new JLabel("密码:"));
 password=new JTextField(12);
dialog_reglster.add(password);
dialog_reglster.add(new JLabel("密码:"));
 password2=new JTextField(12);
dialog_reglster.add(password2);
 JButton yes=new JButton("确定");
JButton no=new JButton("取消");
dialog_reglster.add(yes);
dialog_reglster.add(no);
no.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
dialog_reglster.setVisible(false);
dialog_connect.setVisible(true);
}
});
yes.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(user.getText().equals("")||password.getText().equals(""))
JOptionPane.showMessageDialog( dialog_reglster, "错误", "用户或密码不能为空!", JOptionPane.OK_OPTION);
else if(password.getText().equals(password2.getText())){
try{
sql=Dao.conn.createStatement();
   res=sql.executeQuery("select Eno from Expert_Library where Eno ='"+user.getText()+"'");
   if(!res.next()){
   sql_pre=Dao.conn.prepareStatement("insert into Expert_Library values(?,?)"); 
   sql_pre.setString(1, user.getText());
   sql_pre.setString(2, password.getText());
   sql_pre.executeUpdate();
   JOptionPane.showMessageDialog( dialog_reglster, "正确", "注册成功", JOptionPane.OK_OPTION);
   dialog_reglster.setVisible(false);
   dialog_connect.setVisible(true);
   }
   else
   JOptionPane.showMessageDialog( dialog_reglster, "错误", "用户已存在!", JOptionPane.OK_OPTION); 
}catch(Exception e1){
e1.printStackTrace();
}
}
 
else
JOptionPane.showMessageDialog( dialog_reglster, "错误", "两次密码输入不一致!", JOptionPane.OK_OPTION);
}
});
}
});

button_connect.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

try{
String username=text_user.getText();
String userpassword=text_password.getText();
if(Dao.chexkLogin_admin(username,userpassword)){
JOptionPane.showMessageDialog( dialog_connect, "正确", "登陆成功", JOptionPane.OK_OPTION);
dialog_connect.setVisible(false);
lib.setVisible(true);
}
else if(!Dao.checkLogin(username, userpassword)){
JOptionPane.showMessageDialog( dialog_connect, "用户或密码错误", "登陆失败", JOptionPane.OK_OPTION);

}
else{
JOptionPane.showMessageDialog( dialog_connect, "正确", "登陆成功", JOptionPane.OK_OPTION);
dialog_connect.setVisible(false);
lib.setVisible(true);
button2.setEnabled(false);
button3.setEnabled(false);

}
}catch(Exception e1){
JOptionPane.showMessageDialog( dialog_connect, "异常", "异常", JOptionPane.OK_OPTION);
e1.printStackTrace();
}
}

});

} --------------------编程问答-------------------- 什么异常信心? --------------------编程问答-------------------- 就是catch(Exception e1){
JOptionPane.showMessageDialog( dialog_connect, "异常", "异常", JOptionPane.OK_OPTION);
e1.printStackTrace();

是自己编的,由于在他机上的eclipse里运行没问题,具体异常我也不清楚,JAR文件又不知怎么看抛出的具体异常。。。。。 --------------------编程问答-------------------- 我又去他那弄了下,原来打包的JAR文件运行后点注册也会出现异常窗口(自己弄的),看来只要需要连接我这边的数据库都会出现异常,求解决方法~~~~~~~ --------------------编程问答-------------------- 一般应该将数据库连接字符串和数据库访问相关的信息尽量将这些信息外露(比如使用*.properties文件进行配置),在打包过后,可以对具体环境对数据库连接配置进行重新配置和设定。 --------------------编程问答--------------------
引用 2 楼 pl3121605999 的回复:
什么异常信心?


使用java -jar xxx.jar命令运行下,就可以知道异常出在哪里了。将异常贴出来看看。 --------------------编程问答-------------------- 使用java -jar xxx.jar命令运行jar文件,看看产生的异常信息,贴出看看情况。 --------------------编程问答-------------------- 异常信息............
C:\Users\Administrator>java -jar C:\test(new)\test.jar
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at Dao.<clinit>(Dao.java:15)
        at TestLibrary$14.actionPerformed(TestLibrary.java:376)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
95)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
java.lang.NullPointerException
        at Dao.chexkLogin_admin(Dao.java:41)
        at TestLibrary$14.actionPerformed(TestLibrary.java:376)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
95)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6267)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6032)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
--------------------编程问答-------------------- 怎么看上去好象是数据库驱动问题啊,但和打包的**.jar同文件目录下我已经有了LIB文件,并把那3个数据库驱动文件放了进去啊·!!!!~~~~~~~~~ --------------------编程问答-------------------- 肯定是你没有加载MSSQL数据库的JDBC驱动包到工程目录中引起的,或者是你的JDBC驱动包不正确不能正常引用。 --------------------编程问答-------------------- 连接器的包没有一起打包成功:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver --------------------编程问答--------------------
引用 11 楼 inhibitory 的回复:
连接器的包没有一起打包成功:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

请问如何打包连接器的包? --------------------编程问答--------------------
引用 11 楼 inhibitory 的回复:
连接器的包没有一起打包成功:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

没打包成功的话为什么在我机上就可以连接数据库,拉到别人的机上就连不上了呢?在别人的eclipse里却可以连上。。。。。。 --------------------编程问答-------------------- 悲剧~~~2个帖子都没人鸟!·!!!!到现在都还没搞定,要被老师日了。,,,,,,, --------------------编程问答-------------------- 你把你自己的项目里建立一个lib的文件夹,然后把sqlserver的连接驱动jar包拷进去,最后导入build path,这样试试? --------------------编程问答--------------------
引用 15 楼 skyscraping 的回复:
你把你自己的项目里建立一个lib的文件夹,然后把sqlserver的连接驱动jar包拷进去,最后导入build path,这样试试?

试过了不行,真奇怪,在别人机上的eclipse可以连上我的数据库,打包的却不行,在我机上打包的又可以。。。。。。
补充:Java ,  Eclipse
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,