Не могу скомпилировать проект с PDFNet jar в jdk 1.7
Я начал проект Java. Я хочу использовать библиотеку, которая называется PDFnet. Но это дает ошибку. Где я могу ошибаться?
public class MainClass {
public static void main(String[] args)
{ //System.out.println(System.getProperty("java.library.path"));
//System.loadLibrary("C:\\Users\\BDagli\\Downloads\\PDFNetC64\\Lib\\PDFNet");
boolean uninstallPrinterWhenDone = false; // change this to test the uninstallation functions
PDFNet.initialize();
C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;Files\Java\jdk1.7.0_71\bin;.....
Exception in thread "main" java.lang.UnsatisfiedLinkError: no PDFNetC in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at pdftron.PDF.PDFNet.<clinit>(PDFNet.java:21)
at com.pdf.net.MainClass.main(MainClass.java:19)
3 ответа
Я бы не рекомендовал помещать какие-либо dll в папку System32 (без веской причины). По крайней мере, вы можете использовать библиотеки, которые вы не собирались использовать, поскольку System32 может быть папкой с более высоким приоритетом для загрузки библиотеки. Как минимум, используйте переменную среды PATH, чтобы указать папку, в которой находится PDFNetC.dll.
Однако лучше "решить" проблему... Если вы посмотрите на примеры Java, которые поставляются с PDFNet, вы увидите следующий файл во всех папках примеров JAVA, RunText.bat, который выполняет следующее.
@echo off
setlocal
set TEST_NAME=DigitalSignaturesTest
javac.exe -cp .;../../../Lib/PDFNet.jar *.java
java.exe -Djava.library.path=../../../Lib -classpath .;../../../Lib/PDFNet.jar %TEST_NAME%
endlocal
Так что вам просто нужно установить java.library.path в папку, где PDFNetC.dll находится в вашей IDE. Я не уверен, как установить его в вашей IDE, но я уверен, что это легко найти.
Вот первая ссылка, которую я нашел в Google, описывающая эту переменную лучше. http://www.coderanch.com/t/377174/java/java/java-library-path
Я использую Eclipse для IDE. Затем я добавил. Достаточно ли их? У меня мало опыта
Я решил.
Я помещаю PDFNetC.dll в C:\Windows\System32
В случае, если кто-то использует
Eclipse
зайдите на этот пост, убедитесь, что ваш импорт
PDFNet.jar
указывает в Eclipse, например:
Где каталог, который я указал в
Native library location
выше содержит
PDFNetC.dll
(или
PDFNetC.so
для Linux,
PDFNetC.dylib
для Mac).