无法在jdk 1.7中使用PDFNet jar编译项目

时间:2014-10-24 14:07:21

标签: java unsatisfiedlinkerror pdfnet

我已经开始了一个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 个答案:

答案 0 :(得分:2)

我不建议将任何dll放在System32文件夹中(没有很好的理由)。至少你最终可能会使用你不想要的库,因为System32可能是更高优先级的库加载文件夹。至少,使用PATH环境变量指定PDFNetC.dll所在的文件夹。

然而,最好“解决”这个问题...... 如果查看PDFNet附带的Java示例,您将在所有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 设置为IDENet中包含PDFNetC.dll的文件夹即可。我不确定如何在IDE中设置它,但我确信它很容易找到。

以下是我在Google上发现的第一个更好地描述此变量的链接。 http://www.coderanch.com/t/377174/java/java/java-library-path

答案 1 :(得分:0)

我正在使用Eclipse for IDE。然后我补充说。他们够了吗?我没有太多经验

enter image description here

我已经解决了。

我将PDFNetC.dll放入C:\ Windows \ System32

答案 2 :(得分:0)

如果任何使用 Eclipse 的人访问这篇文章,请确保您导入的 PDFNet.jar 在 Eclipse 中指定了 Native library location,如下所示:

Eclipse Java Build Path - Native library location

我在上面 Native library location 中指定的目录包含 PDFNetC.dll(或 PDFNetC.so for Linux,PDFNetC.dylib for Mac)。

您可以通过以下方式访问 Java 构建路径:

enter image description here