Как перезапустить процесс Java с помощью -Djava.library.path?

У меня есть приложение, которое запускается с JWS. При первом запуске этого приложения пользователь должен выбрать путь, по которому установлен Berkeley DB XML. Мне нужно это, чтобы установить собственный путь к библиотеке и перезапустить приложение с параметром -Djava.library.path. Java-привязки Berkeley DB XML используют JNI для выполнения вызовов к базе данных. Поскольку у наших пользователей могут быть разные ОС, я не могу полагаться на местоположение по умолчанию.

Итак, у меня проблема с получением текущего пути к классам. Когда я распечатываю «java.class.path», он дает мне только «/System/Library/Frameworks/JavaVM.framework/Resources/Deploy.bundle/Contents/Home/lib/deploy.jar». У меня есть три банки, которые я не могу найти в своих системных реквизитах. на моем Mac.

Я надеюсь, что это было понятно, и спасибо за любые советы заранее.


person user3111525    schedule 26.04.2010    source источник
comment
На мой взгляд, очень странно использовать механизм БД, размещенный на пользовательской машине, когда вы можете использовать удаленную БД или даже чистую БД Java, загруженную с вашим запускаемым веб-приложением).   -  person Riduidel    schedule 26.04.2010
comment
Что ж, не мне решать, как использовать БД. Организация, в которой я работаю, использует Berkeley DB XML во встроенном режиме для хранения и запроса XML с помощью XQuery. В этом причина.   -  person user3111525    schedule 26.04.2010
comment
Вы пробовали System.setProperty("java.library.path", "path_to_libs"); вместо перезагрузки?   -  person David Sauter    schedule 27.04.2010
comment
Да, и это не помогло, я думаю, из-за безопасности вам не разрешено устанавливать это свойство во время выполнения.   -  person user3111525    schedule 28.04.2010


Ответы (1)


Попробуйте восстановить права с помощью DiskUtil.

Избегайте использования этого шаблона. Что вы можете сделать, так это сохранить команду и выполнить ее, имитируя запуск нового процесса.

person Community    schedule 22.03.2011