【问题标题】:how to add these files(*.jar) in classpath ? Without any IDE如何在类路径中添加这些文件(* .jar)?没有任何 IDE
【发布时间】:2020-07-08 03:43:10
【问题描述】:

我是java新手。我目前从事 JDBC 工作,面临很多问题,但很多都已解决。

对于这个问题,我在我的 JdbcEx.java 文件和 (.accdb) 放置的文件夹中添加了 .jar(ucanacces 版本 5.0.0) 文件。 当我编译我的 .java 文件时,我遇到了错误

java.land.ClassNotFoundException : net.ucanacces.jdbc.UcanaccessDriver

当我用
D:\java coding\Lecture 14>java -cp D:\java coding\Lecture 14;D:\java coding\Lecture 14\libucanaccess-5.0.0.jar;D:\java coding\Lecture 14\lib\commons-lang3-3.8.1.jar;D:\java coding\Lecture 14\lib\hsqldb-2.5.0.jar;D:\java coding\Lecture 14\lib\jackcess-3.0.1.jar Lecture 14编译.java文件时

我得到错误

错误:无法找到或加载主类编码\Lecture 引起:java.lang.ClassNotFoundException:coding\Lecture

我该如何解决这个问题?

import java.sql.*;
public class JdbcEx{
   public static void main( String args[ ] ){
  try{

      Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
      String url = "jdbc:ucanaccess://D:/java coding/Lecture 14/lib/PersonInfo.accdb";
      Connection con = null;
      con = DriverManager.getConnection(url);
      Statement st = con.createStatement();
      String sql = "SELECT * FROM person";
      ResultSet rs = st.executeQuery(sql);
      while(rs.next()){
          String name = rs.getString("pName");
          String add = rs.getString("address");
          String ph = rs.getString("phoneNum");
          System.out.println(name + "  " + add + "  " + ph);
     }
     con.close();
   }catch(Exception sqlExp){
          System.out.println(sqlExp);
          sqlExp.printStackTrace();
   }
   }
}

【问题讨论】:

  • 命令行中带空格的路径,比如D:\java coding\Lecture 14,需要用双引号括起来。
  • 请注意java 不会编译,它会执行

标签: java ms-access jdbc


【解决方案1】:

问题是你的罐子的路径。命令提示符/shell 处理命令的方式意味着通常空格表示下一个命令行选项。为避免这种情况,您需要用双引号将-cp 之后的整个类路径列表括起来,即:

java -cp "D:\java coding\Lecture 14;D:\java coding\Lecture 14\lib\ucanaccess-5.0.0.jar;D:\java coding\Lecture 14\lib\commons-lang3-3.8.1.jar;D:\java coding\Lecture 14\lib\hsqldb-2.5.0.jar;D:\java coding\Lecture 14\lib\jackcess-3.0.1.jar" Lecture 14

但是,完全避免路径中的空格会更容易,例如使用目录JavaCodingLecture14

鉴于您是从目录D:\java coding\Lecture 14 执行的,您还可以使用相对路径:

java -cp .;lib\ucanaccess-5.0.0.jar;lib\commons-lang3-3.8.1.jar;lib\hsqldb-2.5.0.jar;lib\jackcess-3.0.1.jar Lecture 14

由于路径中没有空格,所以不需要双引号

顺便说一句:您可以使用通配符进一步简化您的类路径:

java -cp ".;lib\*" Lecture 14

【讨论】:

    猜你喜欢
    • 2015-08-14
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2013-11-24
    相关资源
    最近更新 更多