在主机上运行良好,mysql也设好了,可以外部IP访问。
当把程序放到虚拟机里时,就不行了,加了很多语句后,发现只在“链接错误0”弹出了对话框,后面的Class.forName("com.mysql.jdbc.Driver");执行没有?为什么呢?
if(ID && PASSWORD && jComboBox.getSelectedItem()=="学生"){
try {
JOptionPane.showMessageDialog(lab3, "链接错误0","提示",JOptionPane.INFORMATION_MESSAGE);
Class.forName("com.mysql.jdbc.Driver");
JOptionPane.showMessageDialog(lab3, "链接错误1","提示",JOptionPane.INFORMATION_MESSAGE);
conn = DriverManager.getConnection(LoginFrame.IP,"admin", "admin");//Connection
JOptionPane.showMessageDialog(lab3, "链接错误2","提示",JOptionPane.INFORMATION_MESSAGE);
stmt = conn.createStatement();//Statement
JOptionPane.showMessageDialog(lab3, "链接错误3","提示",JOptionPane.INFORMATION_MESSAGE);
SQL = "select * from Student where stuID='" + c_username.getText() + "' and stuPwd='"+ String.valueOf(c_password.getPassword())+"'";
rs = stmt.executeQuery(SQL);
JOptionPane.showMessageDialog(lab3, "链接错误4","提示",JOptionPane.INFORMATION_MESSAGE);
boolean m = false; //判断是否帐号密码错误.false为失败.

解决方案 »

  1.   

    有错误嘛 抛出了嘛 你catch里咋写的啊
      

  2.   

    没有错误提示?
    你的mysql的jar包传过去了么?
      

  3.   

    你驱动包没放在classpath路径里面吧
      

  4.   

    把包放在安装路径的Jre包里了,classpath也配置了,没有任何错误提示,自己加写对话框去。这个东西在主机上运行是好的,只是在虚拟机上有问题。
      

  5.   

      虚拟机是什么环境啊 linux还是?
       虚拟机 中的环境配好了吗?
      

  6.   

    Class.forName("com.mysql.jdbc.Driver");
    哥们,这个作用相当于new com.mysql.jdbc.Driver();
    目的是为了让 环境中有此对象
    如果你没对应的类 要抛出 ClassNotFoundException 的
      

  7.   

    估计是jar包没有导入,在MyEclipse的项目上的Java  build  path 导入一下,试试
      

  8.   

    先解释一下Class.forName("com.mysql.jdbc.Driver");为什么没有执行,因为程序运行到此行的时候发生了异常,而此语句又在try{}里,所有程序会直接跳到catch{}语句去执行相应的异常处理语句了,然后如果有finally{}就执行finally{}里面的代码,然后程序停止。所以Class.forName("com.mysql.jdbc.Driver");以后的代码均不会执行了。
      

  9.   

    都是高手啊,问题可能发生在1,jar包没有载入,2,没有捕获异常。
      

  10.   

    不敢苟同楼上的说法,jar包没导入可能是原因之一,跟有没有捕获异常有关系么,后面捕获了异常照样会出现楼主所说的问题。
      

  11.   

    问题解决了,是打包的时候没有吧mysql的jar包打到包里,用eclipse的fat插件重新打了次包就好了。