Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.ClassNotFoundException_Java_Database_Jdbc_Connection_Classpath - Fatal编程技术网

java.lang.ClassNotFoundException

java.lang.ClassNotFoundException,java,database,jdbc,connection,classpath,Java,Database,Jdbc,Connection,Classpath,我已经在本地机器上安装了MaxDB,我正试图用Java与它建立连接 我在运行时遇到以下错误: 线程“main”中出现异常 java.lang.ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB 这是我正在使用的代码: package sap.maxdb; import java.sql.*; public class Hello { public static void main(String[] args) throws Clas

我已经在本地机器上安装了MaxDB,我正试图用Java与它建立连接

我在运行时遇到以下错误:

线程“main”中出现异常 java.lang.ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB

这是我正在使用的代码:

package sap.maxdb;

import java.sql.*;

public class Hello
{
public static void main(String[] args) throws ClassNotFoundException, SQLException
{
String username = "DBM";
String password = "azerty";
String dbname = "SAPDB";

Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");
String url = "jdbc:sapdb://" + dbname;

Connection connection = DriverManager.getConnection (url, username, password);
Statement stmt = connection.createStatement ();
ResultSet resultSet = stmt.executeQuery ("SELECT * FROM HOTEL.CUSTOMER");
resultSet.next ();
String hello = resultSet.getString (1);
System.out.println (hello);

resultSet.close ();
stmt.close();
connection.close ();
}
}
我确实像他们在报告中说的那样:

设置类路径=%CLASSPATH%;C:\程序 文件\sdb\programs\runtime\jar\sapdbc.jar

但我总是犯同样的错误

我知道我错过了什么,但却找不到!°

等待你的帮助


谢谢。

请尝试添加以下代码,以确保应用程序拾取指定的类路径:

    Map<String, String> env = System.getenv();
    for (String envName : env.keySet()) {
        System.out.format("%s=%s%n", envName, env.get(envName));
    }
Map env=System.getenv();
for(字符串envName:env.keySet()){
System.out.format(“%s=%s%n”,envName,env.get(envName));
}
安装是什么意思?基本上,db服务器必须安装并运行

第二步是将驱动程序(可以在
C:\Program Files\sdb\programs\runtime\jar\sapdbc.jar
下找到)添加到项目的构建路径中。如果找不到驱动程序类,它将根据您的经验引发
ClassNotFoundException


您没有提到正在使用哪个IDE,但请尝试从上下文菜单中设置项目构建路径。

将驱动程序的jar文件复制到服务器的“lib”文件夹中。然后重新启动服务器。

您可以发布完整的堆栈跟踪吗?请尝试
设置CLASSPATH=“%CLASSPATH%;C:\Program Files\sdb\programs\runtime\jar\sapdbc.jar”
如果类路径包含空格,您必须引用它。我尝试了带引号和不带引号,但它仍然不起作用。您是如何运行它的?从IDE,从命令行,从脚本?描述您正在执行的操作,或者更好的是,您正在运行的实际命令/脚本将有所帮助。然后右键单击项目,
生成路径->配置生成路径->库选项卡->添加外部JAR
。从文件浏览器中选择sapdbc.jar并单击“确定”。现在应该解决构建路径问题。
    Map<String, String> env = System.getenv();
    for (String envName : env.keySet()) {
        System.out.format("%s=%s%n", envName, env.get(envName));
    }