2011-06-28 48 views
0

我已经在我的本地机器上安装了MaxDB,并试图使用Java建立连接。java.lang.ClassNotFoundException

和跑步时,我得到这个错误:在线程

异常 “主” 抛出java.lang.ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB

at java.net.URLClassLoader$1.run(Unknown Source) 

at java.security.AccessController.doPrivileged(Native Method) 

at java.net.URLClassLoader.findClass(Unknown Source) 

at java.lang.ClassLoader.loadClass(Unknown Source) 

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 

at java.lang.ClassLoader.loadClass(Unknown Source) 

at java.lang.ClassLoader.loadClassInternal(Unknown Source) 

at java.lang.Class.forName0(Native Method) 

at java.lang.Class.forName(Unknown Source) 

at sap.maxdb.Hello.main(Hello.java:15) 

这是我正在使用的代码:

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(); 
} 
} 

我不喜欢他们在website说:

设置CLASSPATH =%CLASSPATH%; C:\ PROGRAM 文件\ SDB \程序\运行\罐子\ sapdbc.jar

,但我得到总是一样的错误。

我知道我失去了一些东西,但无法找到它°!°

等待您的帮助。

谢谢。

+0

你可以发布完整的堆栈跟踪吗? –

+4

尝试'set CLASSPATH =“%CLASSPATH%; C:\ Program Files \ sdb \ programs \ runtime \ jar \ sapdbc.jar”' –

+0

如果包含空格,则必须引用您的类路径。 – Qwerky

回答

1

什么是“安装”是什么意思?基本上,数据库服务器必须安装并运行。

第二步是将驱动程序(您可以在C:\Program Files\sdb\programs\runtime\jar\sapdbc.jar下找到,假设这也适用于您的安装)添加到项目的构建路径。如果找不到驾驶员级别,则会按照您的经验提升0​​。

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

+0

我正在使用Eclipse 64bit –

+0

然后右键单击项目“构建路径 - >配置构建路径 - >库选项卡 - >添加外部JAR”。从文件浏览器中选择sapdbc.jar,然后单击确定。现在应该解决构建路径问题。 – phineas

1

尝试添加以下代码,以确保您的应用程序拿起您指定的CLASSPATH:

Map<String, String> env = System.getenv(); 
    for (String envName : env.keySet()) { 
     System.out.format("%s=%s%n", envName, env.get(envName)); 
    } 
0

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

相关问题