我可以在 64 位平台上运行 32 位 Java 应用程序吗?

我可以在 64 位平台上运行 32 位 Java 应用程序吗?

我有一个旧的 Java 应用程序,已针对 32 位平台进行了编译。我已从 Windows XP(32 位)迁移到 OS X Snow Leopard(64 位),我想继续使用此应用程序,但是我遇到了以下异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
/Applications/TheApp/lib/libswt-pi-carbon-3139.jnilib:  no suitable image found.
Did find:
/Applications/TheApp/lib/libswt-pi-carbon-3139.jnilib: mach-o, but wrong 
architecture

我曾尝试-d32在从命令行运行应用程序时使用该开关,但没有成功。

是否有可能在 64 位平台上运行这个 32 位应用程序而无需重新编译或者使用虚拟机?

编辑:

我没有这个应用程序的原始源代码,而且我对用 Java 进行开发也不是很熟悉。如果有可以用于“向上编译”(?) 到 64 位的工具,那将非常有用!

答案1

Java 的设计就是为了透明地完成这类事情。你听过这句口号吗?一次编译,随处运行? 嗯,这与此相关:一次编译,随处调试

您看到的问题是因为 GUI 是 Windows 独有的。你看到的异常证实了这一点。一般来说,任何使用 SWT 或 AWT 的东西都无法在其他平台上正常工作,除非小心确保它能正常工作。

长话短说,你运气不好。当然,你可以使用京东提取源代码并修改 GUI 代码以在 OSX 上正常运行。不幸的是,这需要一些 Java 经验。

相关内容