Java命令行参数修改PATH

标签 java dll

我有一个 Java 项目,它使用多个 native DLL,但仅使用 System.load() 加载其中一个,并且它依赖于其他DLL。我无权修改该代码。 System.load() 查找 java.library.path,我可以通过命令行参数设置它,但根据 Java JNI and dependent libraries on Windows 中的最佳答案依赖DLL的加载是由Windows完成的,它只关心PATH,而不关心java.library.path。因此,我需要将包含 DLL 的目录添加到 PATH,并且通过命令行参数来完成此操作也很方便。这样可以吗?

编辑澄清:我正在从 Eclipse 运行我的代码作为 jUnit 插件测试,并且我正在尝试找出如何更改运行配置以获得此效果。我通过将以下内容添加到“参数”选项卡中的 VM 参数框中来更改 java.library.path:

-Djava.library.path="D:/prototype/resources/nativelib/x64;${system_property:java.library.path}"

D:/prototype/resources/nativelib/x64 当然是存储 DLL 的目录。

我尝试添加

-Dpath "D:/prototype/resources/nativelib/x64;${system_property:path}"

-DPATH "D:/prototype/resources/nativelib/x64;${system_property:PATH}"

在同一个地方,但他们都没有得到想要的结果。

最佳答案

在命令行中输入以下命令。

set PATH=%PATH%;C:\path_to_ur_dlls

是的,您可以在 java 代码中执行此操作,如下所示。

 Process proc = Runtime.getRuntime().exec("cmd set PATH=%PATH%;C:\\path_to_ur_dlls");
 proc.waitFor();

关于Java命令行参数修改PATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28234070/

相关文章:

java - 将 4 位数字值拆分为 3 个整数

java - 在 KOI8_R 中检索 html

java - 连接到集群外部的 Cloudera Impala/Hive

c - 在 Visual Studio 2010 中从 dll 崩溃中释放主程序内存

java - 将数组从 Delphi DLL 传递到 JNA

c++ - 如何 Hook 具有更高完整性级别的进程?

java - java "unmanaged"代码可以通过 [DllImport] 属性导入到 C# 中吗?

java - AWS API Gateway 和 Lambda 返回图像

java - ZipInputStream 和 JarInputStream 的 ZipEntry 大小不一致

c++ - 声明的 Hello World DLL 文件。运行时未找到外部函数