Я установил Java 3D API на ПК с помощью установщика exe, который просто создал новый каталог с j3dcore.jar
, vecmath.jar
, j3dutils.jar
в подкаталоге lib и j3dcore-ogl.dll
в подкаталоге bin.
У Netbeans не было проблем, и мой код компилировался и выполнялся гладко, однако, как только я построил свой проект и попытался запустить его из командной строки, я получил UnsatisfiedLinkError
, говорящий, что no j3dcore-ogl in java.library.path
.
На помощь пришел Google и дал мне 3 жизнеспособных решения:
- скопировав файл dll в каталог bin моей JRE
- добавив путь к файлу dll в путь к библиотеке (
java -Djava.library.path=dllpath
) - загрузите dll в программу с помощью
System.load()
(на самом деле я не смог заставить это работать)
Мой вопрос: есть ли элегантное решение этой проблемы, которое я пропустил?
Кажется утомительным, что для каждого другого ПК, на котором кто-то хотел бы использовать эту программу, ему пришлось бы либо скопировать dll, либо добавить ее в путь к библиотеке, прежде чем она сможет работать. (Дополнительный вопрос: почему у Netbeans не было проблем с dll?)