Не могу скомпилировать проект с 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).

Другие вопросы по тегам