Ошибки компоновщика при использовании LuaJava в OSX 10.5 - PullRequest
5 голосов
/ 08 января 2010

У меня куча проблем, чтобы эта библиотека работала на моей установке OSX. В частности, я хотел бы использовать его с виртуальной машиной Java 1.6, но после компиляции получаю следующее:

java -cp "luajava-1.1.jar" org.keplerproject.luajava.Console
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/daniel/src/luajava- 1.1/libluajava-1.1.jnilib: 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at org.keplerproject.luajava.LuaState.<clinit>(LuaState.java:92)
    at org.keplerproject.luajava.LuaStateFactory.newLuaState(LuaStateFactory.java:59)
    at org.keplerproject.luajava.Console.main(Console.java:49)

Я использую OSX 10.5.8 с Lua 5.1.4 Я также изменил свою виртуальную машину OSX по умолчанию на 1.6.0 следующим образом:

/System/Library/Frameworks/JavaVM.framework/Home -> Versions/1.6.0/Home/
/System/Library/Frameworks/JavaVM.framework/Versions/Current -> 1.6.0/
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> 1.6.0/

Что я делаю не так? Я замечаю, когда я использую Java 1.5, все отлично работает. За исключением того, что я не хочу 1,5, я хочу 1,6.

Ответы [ 4 ]

0 голосов
/ 09 марта 2012

Вам нужно поместить файл luajava.jnilib в ваш каталог /System/Library/Frameworks/JavaVM.framework/Library.

0 голосов
/ 15 апреля 2010

Проблема в том, что Apple выпустила только 64-битную версию Java 6 на Leopard, что означает, что все файлы .jnilib (и связанные с ними зависимости) должны быть / содержать 64-битные. Java 5 на Leopard имеет 32- и 64-разрядные версии. Еще более запутанным является тот факт, что Snow Leopard имеет как 32, так и 64-битные версии Java 6.

Итак, подведем итог:

  • Leopard:
    • Java 5: 32 и 64
    • Java 6: 64
  • Снежный барс:
    • Java 6: 32 и 64
0 голосов
/ 25 апреля 2010

Я только что заставил его работать этим утром, следуя этим старым указаниям Джо Хьюджеса: http://retrovirus.com/incr/2005/08/building-luajava/ (потребовались небольшие изменения) Я использую 10,6 на 2007-м (32-битном) MBP.

Проблема, которую вы описали, была решена путем перемещения библиотеки Java libluajava-1.1.jnilib в папку / Library / Java / Extensions /. Флаг -cp "luajava-1.1.jar" добавляет файл jar к вашему пути, но библиотеку все еще нужно добавить.

0 голосов
/ 14 января 2010

Это может быть подсказка, от jnlua на luaforge , Раздел 7. Создание родной библиотеки :

Обратите внимание, что сборка для macos64 Платформа с LuaBinaries в настоящее время не поддерживается. Это связано с Java 6 на Mac OS только 64-битная и LuaBinaries предоставляют только 32-битные библиотеки для этой платформы.

Я не смог найти никакой другой прямой ссылки на это, но это кажется правдоподобным объяснением, учитывая симптомы, которые вы описываете. LuaJava использует LuaBinaries.

...