mysql JDBC驱动程序放在哪里?怎么用?

mysql管网下载的mysql-connector-java-5.1.39-bin.jar,应该放在哪里呢?我不用IDE,只是用notepad++编辑java文件,在cmd下运行javac和java测试程序,别问我为什么不用IDE,不习惯,用不着一堆没用的东西。

网上有博客文章说这个文件放到jdk/lib目录下,再放一份到jre/lib/ext目录下,两个目录我都存了一份。

程序如下:

import java.sql.*;

public class MySQLDemo {
 
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
 

    static final String USER = "root";
    static final String PASS = "root";
 
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            Class.forName(JDBC_DRIVER);
        

            System.out.println("connect...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
        

            System.out.println(" instance Statement object...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name, url FROM websites";
            ResultSet rs = stmt.executeQuery(sql);


            while(rs.next()){

                int id  = rs.getInt("id");
                String name = rs.getString("name");
                String url = rs.getString("url");
    
    
                System.out.print("ID: " + id);
                System.out.print(", site name: " + name);
                System.out.print(", site URL: " + url);
                System.out.print("\n");
            }
     
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
          
            se.printStackTrace();
        }catch(Exception e){
           
            e.printStackTrace();
        }finally{
         
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("Goodbye!");
    }
}

但是运行javac,第一行就报错:

E:ProjectSwordJava>javac MySQLDemo.java
MySQLDemo.java:1: 错误: 需要class, interface或enum
锘縤mport java.sql.*;
^
1 个错误

请教,哪里有问题,该怎么修改?

阅读 10.9k
4 个回答

可能用了 utf8 bom 这个格式,文件带了bom头,所以第一个字母读不出来

javac可以指定使用 -classpath或-cp 指定classpath的,具体你可以百度下。
另外你这个文件的编码最好确定下,最好是utf-8,且是无bom格式的。
最后,jar包一般最好随应用指定,不要往JDK的几个目录里面放。jdk/lib是你编译时候用的,jre/lic是运行时候用的。

问题原因是java编译过程中找不到对应的类. 因为你没有指定java编译的classpath, 像楼上说的, 需要通过-classpath指定, 一般把依赖的jar放到项目的lib/目录下面.
不用ide可以, 但是建议用maven管理依赖和构建项目.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏