windows - 在 Windows 64 位系统上安装 QT Jambi 时遇到问题

标签 windows 64-bit locale failed-installation qt-jambi

我一直在尝试使用 QT Jambi,但我还无法安装它。首先,这是我的系统:

Windows 7 家庭高级版 64 位

Java 6 32 位(我经常使用 JDownloader,它与 Java 64 位版本不兼容)

Code::Blocks 附带的 MinGW C++ 编译器(在安装过程中设置所有必需的环境变量)

我也安装了 CygWin,但我不明白为什么在我得到的错误中提到它...

我的第一个想法是尝试 32 位版本,因为我有 32 位 Java,所以我链接了 Eclipse 中的库,尝试了在教程中找到的经典初学者程序,我收到了这条消息:

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"

然后因为它说它需要一个 64 位系统,所以我遵循了 Installation Guide并尝试了以下步骤:

1) 下载QTJambi源码包

2) 下载原版QT源码包

3)在环境PATH变量中添加“C:\QTJambi\QT\qt-qt\bin”(QT源码包文件夹)

4) 打开 Visual Studio 2005 命令提示符

5) cd C:\QTJambi\QT\qt-qt

6) 尝试过:configure -platform win64-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests

但它不起作用,错误:invalid option win64-g++ for -platform

7) 试过 configure -platform win32-g++ -D QT_JAMBI_BUILD -no-qt3support -plugin-manifests

8) 数字 o 表示开源

9) 接受许可的数字y

但它也不起作用,得到这个错误:

 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

有人能帮忙吗? 在此先感谢任何人!

最佳答案

此响应试图解释和解决原始问题(即如何在 64 位 Windows 系统上使用 32 位 QtJambi 二进制分发版)。

由于系统错误而跳过:尝试加载:'win32',预期:'win64'

这是一条来自 QtJambi 初始化代码的消息,它检测到 JVM 的 32/64 位与试图在运行时加载到 JVM 实例中的 QtJambi 实现的 32/64 位之间的不匹配。

在您的情况下,这是由于尝试将 64 位 JVM 与 32 位版本的 QtJambi 结合使用。这不是一个可能的壮举。要解决此问题,请直接在您的系统上找到并安装 Windows 32 位 JVM,以便您拥有文件“C:\Program Files (x86)\Java\jre6\bin\java.exe”(您可能已经安装了它,请检查)

当它们都安装在 64 位系统上时,看看它们之间的区别:

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)

最上面的是32bit的JVM;最下面的是 64 位 JVM。

现在尝试通过 32 位 JVM 加载您拥有的 QtJambi 二进制版本,您必须明确地执行此操作,因为默认的“java.exe”应该是 Windows 64 位平台上的 64 位版本:

"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

您需要将 ClassPath (-cp) 上方的命令行修复到您尝试运行的 JAR 和 main() 的位置。

如果您因 UnsatisfiedLinkError 而无法启动应用程序并且您使用的是 msvc2008 版本,请尝试安装“Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)”http://www.microsoft.com/download/en/details.aspx?id=5582 (注意:还有一个 64 位版本,此链接适用于与在 32 位 JVM 上使用 32 位 QtJambi 相关的 32 位版本,如果您还想要 64 位版本,请使用“(x64)搜索同一页面”,而不是 Microsoft 网站上的“(x86)”。

然后重试您的测试。

关于windows - 在 Windows 64 位系统上安装 QT Jambi 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7545104/

相关文章:

c++ - 是否有适用于 GIT(C++ 或其他语言)的 API

c++ - __int64 在 32 位机器上?

android - 非拉丁语言环境中的 PatternSyntaxException

java - 如何从 Locale 获取当前时间和时区?

docker - CentOS 7 Docker 镜像和语言环境编译

java - Tomcat 8 : Wrong interpretation of message "java.util.Arrays.stream(Unknown Source)"

c++ - Windows 7 上的 AbortSystemShutdown 不起作用

python - 在 Windows 上,如何安装最低级别的全局键盘 Hook ?

android - 尽管 apk 提供了 64 位和 32 位的所有 native 库,但 Google 播放 64 位错误

用于 64 位操作系统的 C#?