2014-01-30 57 views
0

我買了一臺愛普生TM-T88IV熱敏打印機。我使用安裝手冊安裝了Epson JavaPOS ADK。JavaPOS - Epson TM-T88IV - Eclipse中的UnsatisfiedLinkError

然後,我在Eclipse中添加了Epson JavaPOS的lib文件夾中的Jar-Files,並編寫了一個連接到打印機的簡單程序。

public class MainClass { 
    public static void main(String[] args) 
    { 
     //System.out.println("Ausgabe aus der main()-Methode"); 

     POSPrinterControl113 ptr = (POSPrinterControl113)new POSPrinter(); 

     try { 
      //Open the device. 
      //Use the name of the device that connected with your computer. 
      ptr.open("EPSON_TM_T88IV"); 

      //Get the exclusive control right for the opened device. 
      //Then the device is disable from other application. 
      ptr.claim(1000); 

      //Enable the device. 
      ptr.setDeviceEnabled(true); 
     } 
     catch(JposException ex) { 
     } 
    } 
} 

但我收到這些錯誤:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jp_co_epson_upos_firm_FirmNativeAccess_1_13_0001 in java.library.path 
    at java.lang.ClassLoader.loadLibrary(Unknown Source) 
    at java.lang.Runtime.loadLibrary0(Unknown Source) 
    at java.lang.System.loadLibrary(Unknown Source) 
    at jp.co.epson.upos.core.v1_13_0001.pntr.CommonPrinterService.<clinit>(CommonPrinterService.java:1004) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at jp.co.epson.uposcommon.util.EpsonJposServiceInstanceFactory.createInstance(EpsonJposServiceInstanceFactory.java:142) 
    at jpos.loader.simple.SimpleServiceConnection.connect(Unknown Source) 
    at jpos.BaseJposControl.open(Unknown Source) 
    at MainClass.main(MainClass.java:15) 

它可以打印的東西與「CheckHealth.bat」

有一個人一個想法,以解決這個問題?

此致

Meinzelmaenchen

  • 我使用的Windwos 8.1(64位)
  • 熱敏式打印機是通過USB連接
  • 的EPSON JavaPOS的ADK的版本爲1.13 .15
  • 安裝了Java JDK和JAI的最新32位Java版本

回答

0

您只需將epson驅動程序文件(jp_co_epson_upos_firm_FirmNativeAccess_1_13_0001.XX)的dir包含到類路徑中,例如在centos中,您需要轉到/home/username/.bash_profile並添加export LD_LIBRARY_PATH =/opt/EpsonJavaPOS/bin

1

java.lang.UnsatisfiedLinkError表示Java找不到所需的系統庫。 「系統庫」在這種情況下意味着不是jar庫。 「系統庫」是指操作系統的庫文件(Windows上的DLL)。

您需要更改(在Windows上)PATH變量並添加存儲所需Epson JavaPOS DLL的正確目錄。或者你可以設置正確的路徑,而開始使用「-Djava.library.path」參數Java應用程序,如:

java.exe -Djava.library.path=c:\path\to\dlls\ -cp c:\my\class\path my.app.Main 

編輯

你需要指定的路徑是其中存儲DLL jp_co_epson_upos_firm_FirmNativeAccess*.dll的目錄。 Epson JavaPOS ADK的安裝例程將這些文件存儲到您在安裝ADK時指定的JRE的bin目錄中。