2012-05-10 127 views
1

我試圖在64位Windows上執行GROBID在Windows 64位上運行Grobid

Windows沒有x64位版本的庫(至少我找不到)。它運行在具有64位JRE的64位Linux和具有32位JRE的32位Windows上。所以JRE的版本不是問題。

我知道我需要包含64位Windows - libcrfpp文件。但是我找不到它。你可以讓我知道我在哪裏可以找到它或幫我執行它?

但是我得到一個錯誤如下 -

Exception in thread "main" java.lang.ExceptionInInitializerError 
     at org.grobid.core.main.GrobidParser.<clinit>(GrobidParser.java:22) 
     at org.pushpin.main.Main.main(Main.java:138) 
    Caused by: java.lang.RuntimeException: Unable to find a native CRF++ library: Folder <FOLDER>\GROBID_HOME\.\lib\win-64 does not exist 
     at org.grobid.core.main.LibraryLoader.load(LibraryLoader.java:21) 
     at org.grobid.core.impl.GrobidFactoryImpl.init(GrobidFactoryImpl.java:35) 
     at org.grobid.core.impl.GrobidFactoryImpl.newInstance(GrobidFactoryImpl.java:22) 
     at org.grobid.core.impl.GrobidFactoryImpl.instance(GrobidFactoryImpl.java:14) 
     at org.grobid.core.GrobidFactory.<clinit>(GrobidFactory.java:13) 
     ... 2 more 

UPDATE 錯誤時嘗試使用運行它 - 使用的是64位JVM在Windows 64時試圖運行它

錯誤Windows 64上的32位JVM -

Caused by: java.io.IOException: Cannot run program "<project path i have removed it>\lib/pdftoxml": CreateProcess error=193, %1 is not a valid Win32 application 
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 
at java.lang.Runtime.exec(Runtime.java:615) 
at java.lang.Runtime.exec(Runtime.java:448) 
at java.lang.Runtime.exec(Runtime.java:345) 
at org.grobid.core.document.Document.pdf2xml(Document.java:217) 
at org.grobid.core.engines.HeaderParser.processing(HeaderParser.java:86) 
+0

可能:它顯示了文件夾 \ GROBID_HOME \ \ LIB \ WIN-64不存在.. –

+0

它不是有關文件夾。 libcpp文件必須在該文件夾中。但它不可用。 – JHS

+0

您可以從源代碼構建x64版本的庫或使用32位JRE。 – pingw33n

回答

2

無法從64位加載32位本機庫JVM。

但你可以安裝在你的64位Windows 32位JVM和運行它採用32位機庫的Java應用程序。

UPDATE:

這是應用程序啓動

private static String getLibraryFolder() { 
    String osPart = System.getProperty("os.name").replace(" ", "").toLowerCase().substring(0, 3); 
    String archPart = System.getProperty("sun.arch.data.model"); 
    //todo: change to fetching the basic dir from GrobidProperties object 
    return String.format("%s/%s-%s", GrobidProperties.getInstance().getNativeLibraryPath().getAbsolutePath(), 
      osPart, archPart); 
} 

該應用程序是檢查房地產的摘錄獲取本機庫文件夾。如果您使用64位Windows 32位JVM,你

java.home=C:\Program Files (x86)\Java\jre7 
os.arch=x86 
os.name=Windows 7 
sun.arch.data.model=32 

所以執行與32位JRE的應用程序會從<FOLDER>\GROBID_HOME\.\lib\win-32

UPDATE加載機庫: 使用32位JRE時遇到的錯誤與JVM體系結構無關。您應該正確安裝並配置您的pdf2xml

+0

Windows沒有x64位版本的庫(至少我找不到)。它運行在64位Linux和32位Windows上。所以即使是32位的JRE也不會有幫助。 – JHS

+0

32位JVM將有所幫助。當我需要在64位Windows中運行帶有32位本機依賴項的Java應用程序時,我檢查了自己。嘗試一下。 – fglez

+0

我確實嘗試過。它需要一個libcrfpp文件來運行。這僅適用於具有64位JVM的64位Linux和具有32位JVM的32位Windows。 – JHS

0

我在這裏寫的只是告訴你,我們已經集成了Windows 64位Wapiti的移植版本。

如果您仍然有興趣嘗試,您可以從master下載/更新Grobid開發版本。

解決了pdf2xml的問題以及在Windows中測試時出現的其他小錯誤。 批處理和服務模式都工作得很好。在本地運行的不同Windows版本上進行更密集的測試會很棒。

您可以跟進進度並報告relative issue的最終問題或錯誤。

乾杯 盧卡

相關問題