符号未定义Java_Java ODBC数据源(未定义符号:SQLAllocEnv)
我有以下Java代碼。該代碼的目的是建立與遠程MySQL數據庫ProductionDb(在我的/etc/odbc.ini文件中定義的數據源)的連接。
import java.sql.*;
import java.util.*;
import java.io.*;
public class Test {
public static void main(String[] args) {
try {
Connection conn = null;
PreparedStatement s = null;
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver).newInstance();
conn = DriverManager.getConnection("jdbc:odbc:ProductionDb");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
/etc/odbc.ini文件是:
$ cat /etc/odbc.ini
[ProductionDb]
Driver = /usr/lib/odbc/libmyodbc.so
Description = Production Database
Server = [ hidden ]
Port = 3306
User = [ hidden ]
Password = [ hidden ]
Database = ProductionDb
順便說一句-我正在使用Java 7和Ubuntu:
$java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 11.04
Release: 11.04
Codename: natty
當我嘗試運行程序時,出現以下錯誤:
$java Test
java: symbol lookup error: /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libJdbcOdbc.so: undefined symbol: SQLAllocEnv
有誰知道為什么我會收到此錯誤?這是怎么了
PS順便說一句,我確實運行了sudo apt-get install unixodbc-dev,sudo apt-get install
libmyodbc和sudo apt-get install libmysql-java :-)
更新:
我還嘗試了以下答復之一(由Benny
Hill提出)提出的想法:使用/etc/odbcinst.ini以及/etc/odbc.ini。仍然不起作用,并且我得到了相同的錯誤消息。
$ cat /etc/odbc.ini
[ProductionDb]
Driver = MySQL Driver
Description = Production Database
Server = [ hidden ]
Port = 3306
User = [ hidden ]
Password = [ hidden ]
Database = ProductionDb
$ cat /etc/odbcinst.ini
[MySQL Driver]
Driver = /usr/lib/odbc/libmyodbc.so
補充說明:
我可以通過R編程語言成功使用此ODBC數據源。
> library(odbc)
> con = odbcConnect("ProductionDb")
> con
RODBC Connection 1
Details:
case=nochange
DSN=ProductionDb
總結
以上是生活随笔為你收集整理的符号未定义Java_Java ODBC数据源(未定义符号:SQLAllocEnv)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: app分发平台java_集成 Asset
- 下一篇: 中信信用卡ic普卡额度