Не удается загрузить 32-разрядные библиотеки SWT на 64-разрядной JVM

Мой компьютер win7 64 битный, и jdk 1.7.0.21,jvm 1.6.. и 64 битный Я хочу запустить приложение SWT и экспортировать как исполняемый файл jar. Когда я запускаю приложение, оно имеет исключение, что не может загрузить 32-битные библиотеки SWT на 64-битной JVM, поэтому я импортирую SDK как альтернативный jre, как вы указали на Невозможно загрузить 64-битные библиотеки SWT на 32-битной JVM (заменяя SWT-файл), и в Eclipse приложение может работать правильно, но когда я редактирую bat-файл для запуска jar-файла, всегда возникает проблема, например: Невозможно загрузить 32-битные библиотеки SWT на 64-битной JVM, у меня есть swt.jar для 64-битных, но я не знаю, как заменить, и я хочу отредактировать файл bat с информацией с помощью SDK. Как справиться с проблемой?

5 ответов

У вас есть 64-битная JVM, поэтому она не будет запускать 32-битные библиотеки SWT. Вам нужно либо:

  1. Загрузите и установите 32-битную JVM и измените настройки своего проекта, чтобы запустить 32-битную JVM вместо 64-битной.
  2. Вместо этого скачайте и установите 64-битные библиотеки.

Этот предыдущий вопрос SO содержит отличное описание первого варианта с сопровождающими диаграммами:

Невозможно загрузить 64-битные библиотеки SWT на 32-битной JVM (замена файла SWT)

Помимо соответствующей библиотеки SWT, соответствующей операционной системе и их разрядности, иногда также учитывают следующее:

Моя среда:

32-битная Ubuntu

32-битная JVM / JRE

Eclipse работает с использованием 32-битной JRE

32-битный ГТК SWT

Подход 1: Я столкнулся с проблемой, когда заменял 32-битную SWT на 64-битную SWT для тестирования на других платформах. Чтобы решить эту проблему, мне пришлось удалить / очистить проект и перестроить проект с 64-битной SWT. Но этот шаг логически не имеет смысла, все еще работает.

Подход 2: Все мои SWT-библиотеки для каждого O/S имели одно и то же имя - "swt.jar", находящееся в разных папках. Я только изменил на соответствующую библиотеку при тестировании, то есть 32 и 64 бит / с оба имеют swt.jar. Теперь это как-то вызывает некоторые проблемы. Пока не в состоянии идентифицировать. Но после изменения имени на что-то другое для каждого из файлов lib swt, это было решено. Этот шаг также не имеет особого смысла.

Подход 3: Я работаю с использованием Geotools API версии 10.5, которая также содержит библиотеку SWT в папке bin. Мне пришлось удалить его из папки (переместить в другое место), и теперь мое приложение работает нормально!

64-битная JVM? Вы должны использовать 64-битный SWT

У меня была похожая проблема. Установка 32-битного jvm на мой 64-битный компьютер решила проблему.

Мне сложно работать с SWT, это дистрибутив. Требуется установка для каждого SO (Linux, Windows | 32, 64), у Swing нет этой проблемы и это круто, но я предпочитаю SWT/JFace.

Чтобы решить эту проблему, я создаю сценарий Ant, чтобы архивировать каждую установку со своим законным SWT-файлом.

Я получаю конкретные баночки SWT в:

http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php

Другие вопросы по тегам