【问题标题】:Add library path to jar file将库路径添加到 jar 文件
【发布时间】:2012-04-17 11:34:56
【问题描述】:

我有一个带有 dll 文件的外部库,我使用的是 netbeans 和 java。我想在我的 jar 文件中添加一个库路径,例如:“java -Djava.library.path="bin"”,我该怎么做? 我必须添加相对路径,而且我确实必须添加它,因为它将是一个供用户使用的程序,我希望它根本不需要安装。

谢谢

【问题讨论】:

    标签: java netbeans path jar


    【解决方案1】:

    您可以为 DLL 使用绝对路径。如果您知道应该从哪里加载库,则无需更改路径。

    System.load("C:/my/path/to/dll/my.dll");
    

    【讨论】:

    • 我得到如下错误:-UnsatisfiedLinkError:目录分隔符不应出现在库名称中:C:\Users\Judit\Desktop\jogl-1.1.1-windows-amd64\lib\jogl_cg.dll
    • 并且:java.library.path 中没有 C:/Users/Judit/Desktop/jogl-1.1.1-windows-amd64/lib/jogl.dll
    • System.load("C:/Users/Judit/Desktop/jogl-1.1.1-windows-amd64/lib/jogl_cg.dll");
    • 我试过这个,尝试不使用 dll 所以只是为了 lib,而不是尝试使用 \\ 而不是 /,仍然不起作用,我收到错误:java.lang.UnsatisfiedLinkError: C :\Users\Judit\Desktop\jogl-1.1.1-windows-amd64\lib\jogl_cg.dll: 找不到依赖库
    • 这意味着它可以找到这个dll,但是它找不到这个需要加载的dll。您可能必须先加载()这些。
    【解决方案2】:

    您需要指定完整的 JAR 路径:

    java -Djava.library.path="bin/my.jar"
    

    【讨论】:

    • 我认为您不能以这种方式从 jar 中加载 DLL。
    • 呃,我误解了短语 "...库路径,例如:... 到我的 jar 文件...",抱歉。
    • 我认为 OP 希望他的 JAR 文件中的代码必须从特定目录中查找 DLL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 2018-11-07
    • 2015-09-27
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    相关资源
    最近更新 更多