我用它来加载java程序中的dll库。显示错误。像这样的目录分隔符不应该出现在库名中:。
import java.sql.*;
/*
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Platform;
import com.sun.jna.*;*/
public class jdbc3
{
public native void FasSendUserFromFasToFac();
static
{
System.loadLibrary("Macintosh HD/Users/sakkisetty/Documents/dll/FasExtend");
}
/* public interface simpleDLL extends Library
{
simpleDLL INSTANCE = (simpleDLL) Native.loadLibrary((Platform.isWindows() ? "simpleDLL" : "simpleDLLLinuxPort"), simpleDLL.class);
byte giveVoidPtrGetChar(Pointer param); // char giveVoidPtrGetChar(void* param);
int giveVoidPtrGetInt(Pointer param); //int giveVoidPtrGetInt(void* param);
int giveIntGetInt(int a); // int giveIntGetInt(int a);
void simpleCall();
}*/
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/somesh";
// Database credentials
static final String USER = "root";
static final String PASS = "";
public static void main(String[] args)
{
jdbc3 jb=new jdbc3();
jb.FasSendUserFromFasToFac();
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
// System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println("Connecting to database...");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = " select id,image from images1 ";
ResultSet rs = stmt.executeQuery(sql);
//STEP 5: Extract data from result set
while(rs.next())
{
//Retrieve by column name
System.out.println("\n");
int no = rs.getInt("id");
System.out.print("\t USER_I_ID: " +no);
/*String std_name = rs.getString("name");
System.out.print(" \t First_name : " + std_name);
String std_course = rs.getString("course");
System.out.print(" \t course : " + std_course);*/
Blob std_image = rs.getBlob("image");
System.out.print(" \t std_images : SS" + std_image);
}
}
catch(SQLException se)
{
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e)
{
//Handle errors for Class.forName
e.printStackTrace();
}finally
{
//finally block used to close resources
try{
if(stmt!=null)
stmt.close();
}catch(SQLException se2){
}// nothing we can do
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end catch try
}//end finally
}//end main
}//end FirstExample
假设我只使用system.load()
它可能会显示一种类型的错误。那是
Expecting an absolute path of the library: Macintosh HD/Users/sakkisetty/Documents/dll/FasExtend.dll
并使用全名system.loadlibrary()
。它可能会显示另一种类型错误。那是
Exception in thread "main" java.lang.UnsatisfiedLinkError:
Directory separator should not appear in library name:
Macintosh HD/Users/sakkisetty/Documents/dll/FasExtend.dll
所以我正在使用 mac 操作系统。请告诉我这个问题的解决方案。