3

У меня есть старое приложение 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 при запуске приложения из командной строки, но безуспешно .

Можно ли вообще запустить это 32-битное приложение на 64-битной платформе без перекомпиляции или использования виртуальной машины?

Редактировать:

У меня нет исходного кода для этого приложения, и я не слишком знаком с разработкой на Java. Если есть инструмент, который я могу использовать для «компиляции» (?) на 64 бит, что было бы полезно!

1 ответ1

3

Java разработана, чтобы делать такие вещи прозрачно. Вы когда-нибудь слышали лозунг « Компиляция», «Запуск везде»? Ну, это уместно здесь: компилировать один раз, отлаживать везде.

Проблема, которую вы видите, заключается в том, что графический интерфейс зависит от конкретного окна. Исключение, которое вы видите, подтверждает это. В общем, все, что использует SWT или AWT, не будет работать правильно на другой платформе, если не будут приняты меры, чтобы убедиться в этом.

Короче говоря, вам не повезло. Конечно, вы можете использовать JD для извлечения исходного кода и изменения кода GUI для правильной работы в OSX. К сожалению, это потребует некоторого опыта работы с Java.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .