Running Grobid on Windows 64 bit - windows

I am trying to execute GROBID on a 64-bit Windows.
There is no x64 bit version of the library for Windows (Atleast I could not find). It runs on 64 bit Linux with 64 bit JRE and on 32 bit Windows with 32 bit JRE. So the version of JRE is not the problem.
I understand I need to include the 64-bit Windows - libcrfpp file. However I cannot find it. Can you please let me know where can I find it or help me execute it?
However I get an errors as follows -
Error when trying to run it using a 64 bit JVM on Windows 64 -
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
Error when trying to run it using a 32 bit JVM on Windows 64 -
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)

It is not possible to load a 32-bit native library from a 64-bit JVM.
Using a 32 bit dll on a 64 bit machine
But you can install a 32-bit JVM on your 64-bit Windows and run a Java application which uses a 32-bit native library.
Is it possible to install both 32bit and 64bit Java on Windows 7?
How to run an API made for 32-bit on a 64-bit machine?
UPDATE:
This is a excerpt of the application launcher
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);
}
The application is checking property sun.arch.data.model to get the native library folder. If you use a 32-bit JVM in a 64-bit Windows, you get
java.home=C:\Program Files (x86)\Java\jre7
os.arch=x86
os.name=Windows 7
sun.arch.data.model=32
So executing the application with a 32-bit JRE would load the native libraries from <FOLDER>\GROBID_HOME\.\lib\win-32
UPDATE:
The error you get when using 32-bit JRE has nothing to do with JVM architecture. You should install and configure your pdf2xml correctly.

I'm writing here just to inform you that we've integrated the ported version of Wapiti for Windows 64bit.
If you are still interested to try, you can just download/update the Grobid development version from master.
The issues with pdf2xml have been solved as well as other minor bugs that emerged when testing with Windows.
Batch and service mode are both working just fine. Would be great to have more intensive testing on different Windows versions running natively.
You can follow up the progress and report eventual problems or bugs at the relative issue.

Related

32bit Qt application can't start correctly (0xc000007b)

I have a problem with running my 32bit C++/Qt application without Qt Creator. While it starts I'm getting the following error:
The application was unable to start correctly (0xc000007b)
This app starts correctly when I'm running its in Qt Creator. What should I do to open its by .exe file? I checked this app using DUMPBIN /header
FILE HEADER VALUES
14C machine (x86)
(...)
OPTIONAL HEADER VALUES
10B magic # (PE32)
I use Windows 7 64 bit but my application is 32 bit, so I checked .exe in Dependency Walker and I saw, that 3 modules in main dependency have 64bit icons. What is the reason and why program runs successfully when I use Qt Creator? I compile my app usingqmake.exe r -spec win32-g++ and mingw32-make.exe

install libssh2.dll on windows

I want to install SSH on my PC (windows 7 64bits).
But I have a problem with the installation of libssh2.dll file
I saved in: C: \ Windows \ SysWOW64
and even in C: \ Windows \ System32
and when I execute this command "regsvr32 libssh2.dll" in cmd as administrator I get this error message:
Libssh2.dll "The module" "was loaded, but the DllRegisterServer entry point was not found.
Verify that "libssh2.dll" is a valid DLL or OCX file and try again. "
I downloaded from this site file:
http://windows.php.net/downloads/pecl/releases/ssh2/0.12/
The only good that contains the libssh2.dll is x86 (knowing that I have a 64bits), is what may be causing the problem?
If someone knows a solution, please, share it, it is very important that I find a solution as soon as possible and thank you.
You have to put that libssh2.dll somewhere on the %path% so then the PHP extension can find it. Logic were to put it into your PHP dir (if you use the standard zipball from windows.php.net).
well why have you downloaded a 32 bit file to a 64 bit system
am I missing something here
You can only run a 32bit type if your Apache PHP and MySQL have 32bit running versions or 64 bit in your case. So if you are running a 32bit OS on a 64bit system then this is fine, if you are running 64 bit script on a 64 bit system and are trying to use a 32 bit script which I suspect you are then this is not fine!
I would therefore suggest that if this is the case you may have a mix match of OS Versus Script.
There are a few brave people operating in the 64 bit world and you should only ever use the stable versions of the product and like Apache unless you do you will not get the support you want because you have not utilised a stable version only and Apache will not support 64 bit, hence Apache lounge.
If you are running off localhost or 127.0.0.1, then running a stable 32 bit OS and running the 32 bit stable version is the only way you will get support.

Lua for windows https error: "%1 is not a valid Win32 application"

I've got a question about Lua and https. I'm developing some software for a router which supports Lua. The bad thing is that this router doesn't support debugging. So I was looking for an IDE for Lua.
I'm using the Lua Development Tools and LuaForWindows on a Win 7 64-bit OS. Till now everything works like it should. But now I have to call some urls by https. The router itself has a package ssl.lua and you can user this package with the require ("ssl.https") statement. But I want to debug it with the Lua Development Tools. I was searching for Windows compatible packages and have found the "Luasec" project.
As mentioned in this thread "Lua with the Freebase API"; I have downloaded Luasec.
I have put the ssl.lua and the ssl folder within my lua installation the I have put the ssl.dll in the clibs folder within the lua installation.
For testing I only do a require ("ssl.https") in my Lua file but it crashes. It says:
C:\Program Files (x86)\Lua\5.1\lua.exe: error loading module 'ssl.core' from file 'C:\Program Files (x86)\Lua\5.1\clibs\ssl.dll':
%1 ist keine zulässige Win32-Anwendung. (%1 is no a valid Win32 application)
I've tested it on a Win 7 32 bit pc too and it crashes with this:
C:\Program Files\Lua\5.1\lua.exe: error loading module 'ssl.core' from file 'C:\Program Files\Lua\5.1\clibs\ssl.dll':
Das angegebene Modul wurde nicht gefunden. (The module cant be found)
Can anybody please help me getting this work?
I had this same problem on Windows 7 64 bit as well, using Alien to load a Windows DLL.
The library I was loading (i.e. the DLL) is a 64 bit DLL, but Lua for Windows is a 32 bit application.
I have a 32-bit version of the DLL that I loaded instead, and that works. See if you too can find a 32 bit version of your library.
As for your problem on 32 bit Windows, that could of course be due to other factors, though if you are using the same 64 bit DLL, I guess that won't work either.
I got this problem yesterday and solved it by downloading the source code of Luasec and built it with static library on a 32-bit windows 7 pc. You may try to build your own.
I changed some configurations in my C/C++ and Linker properties of project.
Below are what I changed:
C/C++ -> Code Generation -> Runtime Library: Multi-threaded (/MT)
Linker -> General -> Additional Library Directories: C:\OpenSSL-Win32\lib\VC\static
Linker -> Input -> Additional Dependencies: add libeay32MT.lib and ssleay32MT.lib
Or, you could download my version here if you need.

What is PnPUtil.exe location in 64bit systems?

I would like to install my USB device driver [.inf file] using PnPUtil.exe utility on both 32bit and 64bit systems for Windows Vista and Windows 7.
I tested on my machine [Windows 7 32bit] and everything was fine because PnpUtil.exe is located in: C:\Windows\System32\PnPUtil.exe.
But in 64bit Windows 7 the utility is not in this directory.
When I tried installing driver on different Windows 7 - 64bit machine I could found PnPUtil.exe in this location: C:\WIndows\winsxs\amd64_microsoft-windows-pnputil_31bf3856ad364e35_6.1.7600.16385_none_5958b438d6388d15\pnputil.exe
and the test was also fine.
So how can I exactly detect this directory on all platforms?
I noticed the path is dependent on built of Windows version - 6.1.7600.16385 - but how to detect the rest of path?
Or is the path always the same on all 64 bit platforms? And what about Vista?
The location of PnPUtil.exe seen from you installer application depends on the bitness of your installer:
32bit installer on 32bit Windows: %WinDir%\System32
64bit installer on 64bit Windows: %WinDir%\System32
32bit installer on 64bit Windows: %WinDir%\Sysnative (Windows Vista and up)
More info here:
http://www.samlogic.net/articles/sysnative-folder-64-bit-windows.htm
I recently came across this problem while trying to create an installer for ReplicatorG, which includes the Arduino drivers and some drivers specific to the Makerbot Replicator.
It seemed that there isn't any way to determine the location of PnPutil, and I instead had to acquire Microsoft's DIFx and use their redistributable DPinst.
There were a couple of strange things about DPinst that made it difficult to use. The first is that it didn't seem to run properly if it was located in a directory tree with spaces in the path. Who knows why. The second was that, because the Arduino drivers are unsigned, it needed to be run in legacy mode to keep from popping up a big, red dialog warning the user. To run it in legacy mode you use the /lm flag, but the flag must be lowercase. Again, it's unclear why.
In the end, I had the installer copy dpinst and each of the drivers to a folder in the temporary directory and then run dpinst. It pops up a nice little wizard and tells the user which drivers were installed.
From C:\WIndows\winsxs\
dir /s PnPUtil.*
will scan subdirectories

Trouble installing QT Jambi on a Windows 64 bit system

I've been trying to use QT Jambi, but I couldn't manage to install it yet. First of all, this is my system:
Windows 7 Home Premium 64 Bit
Java 6 32 bit (I often use JDownloader which is not compatible with the 64 bit version of Java)
MinGW C++ compiler that comes with Code::Blocks (which sets all required environmental variables during setup)
I also have CygWin installed, but I don't understand why it gets mentioned during the error that I get...
My first idea was to try the 32 bit version since I have 32-bit Java, so I linked the libraries in Eclipse, tried the classical beginner program found in a tutorial and I got this message:
java.lang.ExceptionInInitializerError
at com.trolltech.qt.QtJambiObject.<clinit>(Unknown Source)
Caused by: java.lang.RuntimeException: Loading library failed, progress so far:
Unpacking .jar file: 'qtjambi-win32-msvc2008-4.7.1.jar'
Checking Archive 'qtjambi-win32-msvc2008-4.7.1.jar'
- skipping because of wrong system: trying to load: 'win32', expected: 'win64'
Loading library: 'QtCore4.dll'...
- using 'java.library.path'
at com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(Unknown Source)
at com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(Unknown Source)
at com.trolltech.qt.Utilities.loadQtLibrary(Unknown Source)
at com.trolltech.qt.Utilities.loadQtLibrary(Unknown Source)
at com.trolltech.qt.QtJambi_LibraryInitializer.<clinit>(Unknown Source)
... 1 more
Caused by: java.lang.RuntimeException: Library 'QtCore4.dll' was not found in 'java.library.path'=C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C: \Windows;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Broadcom\Broadcom 802.11\Driver;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\CodeBlocks\MinGW\bin\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\cygwin\bin;C:\Program Files\Microsoft Windows Performance Toolkit\;.
at com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(Unknown Source)
... 6 more
Exception in thread "main"
Then since it says it expects a 64 bit system I followed the Installation Guide and tried this steps:
1) Downloaded QTJambi source package
2) Downloaded original QT source package
3) Added "C:\QTJambi\QT\qt-qt\bin" (QT source package folder) to the environment PATH variable
4) Opened Visual Studio 2005 Command Prompt
5) cd C:\QTJambi\QT\qt-qt
6) Tried: configure -platform win64-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests
But it didn't work, error: invalid option win64-g++ for -platform
7) Tried configure -platform win32-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests
8) Digit o for open source
9) Digit y for accepting license
But it doesn't work either, getting this error:
Running syncqt...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset)
LANG = "IT"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Can't execute /cygdrive/c/QTJambi/QT/qt-qt/bin//syncqt
syncqt failed, return code 2
Anyone able to help?
Thanks in advance to anyone!
This response attempts to explain and address the original problem (i.e. how to make use of the 32bit QtJambi binary distribution on a 64bit Windows system).
skipping because of wrong system: trying to load: 'win32', expected: 'win64'
This is a message from the QtJambi initialization code that detects a mismatch between the 32/64 bit-ness of the JVM and the 32/64 bit-ness of the QtJambi implementation trying to be loaded into the JVM instance at runtime.
In your case this is due to trying to use a 64bit JVM with a 32bit version of QtJambi. This is not a possible feat. To correct the problem find and install directly the Windows 32bit JVM on your system so that you have the file "C:\Program Files (x86)\Java\jre6\bin\java.exe" (you may already have it installed, please check)
When they are both installed on a 64bit system take a look at the difference between:
C:\>"C:\Program Files (x86)\Java\jre6\bin\java.exe" -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)
C:\>"C:\Program Files\Java\jre6\bin\java.exe" -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
The top one is the 32bit JVM; the bottom one is the 64bit JVM.
Now try loading the QtJambi binary version you have via the 32bit JVM you have to do this explicitly as the default "java.exe" should be the 64bit one on a Windows 64bit platform:
"C:\Program Files (x86)\Java\jre6\bin\java.exe" -cp qtjambi-X.Y.Z.jar;qtjambi-win32-msvc2008-X.Y.Z.jar;myjar.jar mypackage.MyMain
You need to fixup the command line above the ClassPath (-cp) to the locations of your JARs you are attempting to run and the main().
If you have problems getting the application to start due to UnsatisfiedLinkError and you are using a msvc2008 build then try installing the "Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)" http://www.microsoft.com/download/en/details.aspx?id=5582 (NOTE: There is also a 64bit version of this as well, this link is for the 32bit version which is relevant to using 32bit QtJambi on a 32bit JVM, if you also want the 64bit version search for the same page with "(x64)" in the title instead of "(x86)" on the microsoft website).
Then retry your test.
Qt Jambi nowadays supports 64 bit compilations too, but getting proper Qt is quite a bit harder.
For MinGW there is some resources available in Internet. Maybe they can help you. Building 64-bit Qt 4.7 using MinGW-w64
Only supported (by Nokia) solution at the moment is 64 bit MSVC compilations, but AFAIK there is no such binaries distributed from Nokia because runtimes are not allowed to be freely distributed. When compiling with MSVC, correct profile for MSVC 2010 would be win32-msvc2010. List of those can be found from in mkspecs directory.
Note that you don’t usually have to specify the profile in first place; only if there is many available profiles you could use and you want to use certain one (MinGW or MSVC, for example).
64 bit compilation with MSVC works using 64 bit environment, according this page.
Using Cygwin with Qt or Qt Jambi is not really suggested; use MSYS if you want unix-like environment.

Resources