代码之家  ›  专栏  ›  技术社区  ›  Rudra Murthy

Mysql连接器不适用于JDK1.7上的Eclipse Juno

  •  0
  • Rudra Murthy  · 技术社区  · 13 年前

    我有一个Java程序,它在MySQL数据库上进行CRUD。

    为此,我一直在使用:

    Eclipse Indigo
    Java 1.6
    MySql-Connector-java-5.1.19-bin.jar
    


    我尝试在 机器配备:

    Eclipse Juno
    Java 1.7
    MySql-Connector-java-5.1.19-bin.jar. 
    

    我已经将MySql连接器添加到Eclipse Juno中项目的构建路径中。

    然而,ant构建失败了,并出现了关于应该从连接器中获取的丢失类和包的错误:

    Buildfile: /home/rudra/Softwares/openfire/openfire_src/build/build.xml
    init:
    compile:
    [javac] Compiling 14 source files to /home/rudra/Softwares/openfire/openfire_src/work/classes
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:3: error: package com.mysql.jdbc does not exist
    [javac] import com.mysql.jdbc.Connection;
    [javac]                      ^
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:4: error: package com.mysql.jdbc does not exist
    [javac] import com.mysql.jdbc.PreparedStatement;
    [javac]                      ^
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:5: error: package com.mysql.jdbc does not exist
    [javac] import com.mysql.jdbc.ResultSet;
    [javac]                      ^
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:21: error: cannot find symbol
    [javac]             PreparedStatement stat = (PreparedStatement)connect.prepareStatement(query2);
    [javac]             ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:21: error: cannot find symbol
    [javac]             PreparedStatement stat = (PreparedStatement)connect.prepareStatement(query2);
    [javac]                                       ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:21: error: cannot find symbol
    [javac]             PreparedStatement stat = (PreparedStatement)connect.prepareStatement(query2);
    [javac]                                                                ^
    [javac]   symbol:   method prepareStatement(String)
    [javac]   location: variable connect of type Connection
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:23: error: cannot find symbol
    [javac]             ResultSet result = (ResultSet) stat.executeQuery();
    [javac]             ^
    [javac]   symbol:   class ResultSet
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:23: error: cannot find symbol
    [javac]             ResultSet result = (ResultSet) stat.executeQuery();
    [javac]                                 ^
    [javac]   symbol:   class ResultSet
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:28: error: cannot find symbol
    [javac]                 PreparedStatement preparedStmt = (PreparedStatement) connect.prepareStatement(query);
    [javac]                 ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:28: error: cannot find symbol
    [javac]                 PreparedStatement preparedStmt = (PreparedStatement) connect.prepareStatement(query);
    [javac]                                                   ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:28: error: cannot find symbol
    [javac]                 PreparedStatement preparedStmt = (PreparedStatement) connect.prepareStatement(query);
    [javac]                                                                             ^
    [javac]   symbol:   method prepareStatement(String)
    [javac]   location: variable connect of type Connection
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:41: error: cannot find symbol
    [javac]                 PreparedStatement statement = (PreparedStatement) connect.prepareStatement("Insert into user values (?,?,?);");
    [javac]                 ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:41: error: cannot find symbol
    [javac]                 PreparedStatement statement = (PreparedStatement) connect.prepareStatement("Insert into user values (?,?,?);");
    [javac]                                                ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:41: error: cannot find symbol
    [javac]                 PreparedStatement statement = (PreparedStatement) connect.prepareStatement("Insert into user values (?,?,?);");
    [javac]                                                                          ^
    [javac]   symbol:   method prepareStatement(String)
    [javac]   location: variable connect of type Connection
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:73: error: cannot find symbol
    [javac]             PreparedStatement statement = (PreparedStatement) connect.prepareStatement(query);
    [javac]             ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:73: error: cannot find symbol
    [javac]             PreparedStatement statement = (PreparedStatement) connect.prepareStatement(query);
    [javac]                                            ^
    [javac]   symbol:   class PreparedStatement
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:73: error: cannot find symbol
    [javac]             PreparedStatement statement = (PreparedStatement) connect.prepareStatement(query);
    [javac]                                                                      ^
    [javac]   symbol:   method prepareStatement(String)
    [javac]   location: variable connect of type Connection
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:75: error: cannot find symbol
    [javac]             ResultSet result = (ResultSet) statement.executeQuery();
    [javac]             ^
    [javac]   symbol:   class ResultSet
    [javac]   location: class UserDB
    [javac] /home/rudra/Softwares/openfire/openfire_src/src/java/org/jivesoftware/openfire/UserDB.java:75: error: cannot find symbol
    [javac]             ResultSet result = (ResultSet) statement.executeQuery();
    [javac]                                 ^
    [javac]   symbol:   class ResultSet
    [javac]   location: class UserDB
    

    有人能帮我吗?

    1 回复  |  直到 13 年前
        1
  •  0
  •   Ashutosh Jindal    13 年前

    从中得到提示 this 问题:

    假设您的build.xml中有一个编译目标,它看起来如下所示:

    <!-- Compile application -->
      <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="yes" includeantruntime="false">
          <classpath refid="classpath" />
        </javac>
      </target>
    

    成功编译所需要的就是定义类路径,使其包括项目的lib目录中的所有jar,如下所示:

      <path id="classpath">
        <fileset dir="${lib.dir}" includes="*.jar"/>
      </path>
    

    我从您的问题中了解到,您已经在Eclipse项目中添加了对连接器jar的引用。你可以试试上面的建议 之后 将连接器jar复制到Eclipse项目的lib文件夹中。

    或者,尽管在我看来这不是一个很好的建议,但您可以将项目导出为Ant Build,并检查由此生成的Build.xml。这可以通过转到“文件”->导出,键入“ant”进行筛选,然后选择“ant Buildfiles”,如下所示:

    Export as Ant BuildFiles