我该如何告诉Java在哪里可以找到本地库?
我想弄清楚我的Java是否行为不端。我该如何告诉Java在哪里可以找到本地库?
我已经清理,并内置在NetBeans我的Java项目,然后试着用下面的命令在命令行中运行该程序:
java -jar ProjectName.jar
我收到以下错误:
The library x.dll could not be loaded by Windows. Make sure that the library is in your Path environment variable. Exception in thread "main" java.lang.ExceptionInInitializerError.
这是否意味着对于dist文件夹中的库文件的每个项目,我需要将它包含在路径环境变量中?这听起来非常麻烦,我会认为Java会足够聪明,可以查看这些库文件的lib文件夹。或者我需要在IDE中配置其他的东西来做到这一点?
java -Djava.library.path=<path where dll located> -jar ProjectName.jar
当您启动应用程序/ Java时,您需要将dll或jar包含在类路径中。
http://download.oracle.com/javase/7/docs/technotes/tools/windows/java.html
糟糕。抱歉。 DLL或罐子。 –
最好提供一个链接到最新的JavaDocs。我会在一会儿编辑你的答案,以包括这一点。顺便说一句 - 低调选民会分享他们的推理吗? IMWTK。 –
我相信反对意见是因为回答罐子不是dll。采取的点。 –
无论是共享库必须在你的PATH指定的目录,或者你可以把它放在同一个目录中正在执行的jar文件,并确保它是当前目录(组如果使用快捷方式,或者如果使用脚本,在运行程序之前cd到该目录,则“启动”。
我还没有在Netbeans中试过这个。 Eclipse似乎没有办法指向共享库位置。
删除,因为答案没有解决netbeans –
得到一个标志:“我认为这个答案应该重新打开.OP提到无法让它在netbeans **或命令行**工作,后者是他们真的需要了解才能做出成功的部署,后者在这个答案中得到解决。“你可以重新评估吗?谢谢。 – Will
*“我原以为java会足够聪明的去查看这些库文件的lib文件夹。”*什么是'lib'文件夹?我认为你会发现lib目录是你的IDE的工件和它安排事物的方式。 –
啊,你说得对。我正在使用NetBeans。让我重新编辑/编辑我的问题。 –