Не удается загрузить 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. Вам нужно либо:
- Загрузите и установите 32-битную JVM и измените настройки своего проекта, чтобы запустить 32-битную JVM вместо 64-битной.
- Вместо этого скачайте и установите 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. Мне пришлось удалить его из папки (переместить в другое место), и теперь мое приложение работает нормально!
У меня была похожая проблема. Установка 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