java.lang.UnsatisfiedLinkError, когда я загружаю банку.

Я программирую с помощью JSE, и я загружаю банку (что я делаю) с другой программой Java. Я думаю, проблема в classLoader виртуальной машины Java. Я сказал, что потому что я попытался запустить файл jar с помощью java -jar "file.jar", и он запустился. Я использую xubuntu с eclipse. В eclipse у меня есть 2 проекта, которые соответственно являются первым программным обеспечением, которое загружает jar и программное обеспечение jar. Для экспорта файла jar я использую мастер «Экспорт -> jar ecc ....». Как я могу решить эту проблему?

Исключение в потоке "main" java.lang.UnsatisfiedLinkError: /media/sda4/so_project/proj/example/first.jar: /media/sda4/so_project/proj/example/first.jar: недопустимый заголовок ELF (Возможная причина: endianness mismatch) в java.lang.ClassLoader $ NativeLibrary.load (собственный метод) в java.lang.ClassLoader.loadLibrary1 (ClassLoader.java:1939) в java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:1864) в java.lang .ClassLoader.loadLibrary (ClassLoader.java:1825) в java.lang.Runtime.load0 (Runtime.java:792) в java.lang.System.load (System.java:1059) в it.unicam.project.Binterpreter. getClassHandle (Binterpreter.java:170) в it.unicam.project.Binterpreter. (Binterpreter.java:100) в it.unicam.project.Test.main (Test.java:12)


person lv92    schedule 28.03.2013    source источник
comment
неверный заголовок ELF может быть несоответствием 32/64 бит.   -  person Java42    schedule 28.03.2013


Ответы (1)


Это потому, что вы используете 32-битную JVM на 64-битной платформе.

person joan    schedule 28.03.2013
comment
Я попытался установить на свой компьютер 64-битный jvm, но не могу его установить, так как ОС этого не позволяет. Вы уверены, что проблема в этом? : S - person lv92; 30.03.2013
comment
Не уверен, но вы можете проверить архитектуру 32/64 каждой среды: см. stackoverflow.com/questions/2062020/ - person joan; 30.03.2013
comment
Итак, две среды 32-битные. Может быть, дело в затмении (вы сказали, что банка создается с помощью утилиты экспорта Eclipse), вы пытались создать банку с консоли? docs.oracle.com/javase/tutorial/deployment/jar/build. html - person joan; 30.03.2013
comment
Я пробовал с консолью (не считая некоторых проблем с манифестом), у меня такая же проблема. Я попытался загрузить эту банку dasha.ics.hawaii.edu /~johnson/613f99/modules/04/psae.jar, и я вызвал first.jar, но та же проблема ....: S - person lv92; 30.03.2013
comment
Но этот jar прекрасно работает на моем компьютере: C: \ Users \ w7 \ Downloads ›java -jar psae.jar hello Hello World hello Правильно ли установлена ​​переменная JAVA_HOME? - person joan; 30.03.2013
comment
Я попробовал ту же команду, и она работает, но если я попытаюсь загрузить с помощью System.load, jvm сгенерирует ошибку, которую я публикую выше. - person lv92; 30.03.2013
comment
Хорошо, вы пробовали System.loadLibrary вместо System.load? См. stackoverflow.com/questions/7016391/ - person joan; 30.03.2013
comment
нет, потому что он говорит: разница есть в документации API. system.loadLibrary (String libname) позволяет загружать файлы с пути по умолчанию - пути к библиотеке Java. Файл jar не указан по умолчанию. И если я попытаюсь это сделать, мне будет возвращена эта ошибка: pastebin.com/3S6QCXzQ - person lv92; 30.03.2013
comment
Только одно. Вы пытаетесь загрузить банку с помощью System.load? System.load предназначен для загрузки динамических библиотек, без банок. Чтобы использовать банку, просто поместите ее в путь к классам и вызовите. - person joan; 30.03.2013
comment
эмм .. да, я нашел это stackoverflow.com/questions/194698/, чтобы загрузить jar во время выполнения, спасибо за вашу помощь. - person lv92; 30.03.2013