Существует ли независимый от платформы оператор Java для загрузки собственной библиотеки из каталога, отличного от исходного кода Java? Я бы хотел использовать что-то вроде этого:
public class HelloWorld {
static {
System.loadLibrary("../some_project/HelloWorld");
}
public static native void print();
}
Проблема в том, что System.loadLibrary () не поддерживает разделители каталогов в аргументе пути. Кроме того, System.load (), к сожалению, требует абсолютного пути, что не только означает, что я не могу указать относительный каталог, как указано выше (что я бы хотел сделать), но также требует, чтобы аргумент включал, например, предыдущий Расширения «lib» и «.so» в имени библиотеки JNI в системе Linux.
Есть ли стандартный способ справиться с этим? Если возможно, я бы не хотел писать кучу платформенно-зависимого кода Java, просто чтобы создать правильное имя библиотеки JNI.
getProtectionDomain()
) - единственно правильный ответ на эту проблему. - person a_horse_with_no_name   schedule 24.05.2012