I use to load the dll library in java program it . show the error. like this Directory separator should not appear in library name:.
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
suppose i use the only system.load()
it may show one type error . that is
Expecting an absolute path of the library: Macintosh HD/Users/sakkisetty/Documents/dll/FasExtend.dll
and use the full name system.loadlibrary()
. it may show another type error. that is
Exception in thread "main" java.lang.UnsatisfiedLinkError:
Directory separator should not appear in library name:
Macintosh HD/Users/sakkisetty/Documents/dll/FasExtend.dll
so i am using mac OS. please tell me solution for this problem.
System.loadLibrary only accepts a filename and looks for the file in the current java paths available. You'll want to add the directory containing FasExtend.dll to your java path, then just use
System.loadLibrary("FasExtend")
Similar to this post: Java native library System.loadLibrary fails with UnsatisfiedLinkError
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With