Я столкнулся со своеобразной проблемой в AIX 6.1 и SLES 11. Я пытаюсь загрузить файл so в Java, используя вызов System.loadLibrary(). Ниже пример программы:
public class jniTest
{
public static void main(String[] args)
{
try
{
System.loadLibrary("libSample.so");
System.out.println("Loaded!!!");
}
catch(UnsatisfiedLinkError e)
{
System.out.println("unsatisfiedlinkerror");
}
}
Когда я компилирую этот фрагмент кода с помощью Java 1.5, он работает правильно. Но когда я компилирую его с Java 1.6, он говорит UnsatisfiedLinkError. Я не понимаю, как я мог получить эту ошибку. Я бегаю так:
javac jniTest.java
java -Djava.library.path=. jniTest
Файл so находится в текущем каталоге, из которого я запускаю код. До этого я пробовал:
указание абсолютного пути - не сработало
используя
Runtime.getRuntime().loadLibrary()- не сработало
Любая идея, что я делаю неправильно?
ldd libSample.soпод SLES? Я предполагаю, что в AIX нет ldd. Возможная причина заключается в том, что libSample.so имеет зависимость от библиотеки JSE 1.5. - person phlogratos   schedule 14.07.2011