0

我已经开始了一个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)
4

3 回答 3

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设置为您的 IDE 中 PDFNetC.dll 所在的文件夹。我不确定如何在您的 IDE 中设置它,但我确信它很容易找到。

这是我在谷歌上找到的第一个更好地描述这个变量的链接。 http://www.coderanch.com/t/377174/java/java/java-library-path

于 2014-10-24T16:33:16.550 回答
0

我正在为 IDE 使用 Eclipse。然后我加了。他们够了吗?我没有很多经验

在此处输入图像描述

我解决了。

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

于 2014-10-24T14:18:35.167 回答
0

如果有人使用Eclipse这篇文章,请确保您的导入PDFNet.jar指定了Native library locationEclipse,如下所示:

Eclipse Java 构建路径 - 本机库位置

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

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

在此处输入图像描述

于 2021-07-30T18:52:09.143 回答