为何同一Eclipse中两个项目的java.library.path不同?
为什么两个Eclipse项目的
java.library.path输出不同? 这是Eclipse运行配置的典型问题,我来给你梳理清楚背后的原因:
运行配置的作用范围是「特定配置」而非全局
你通过Run Configurations → Arguments → VM arguments设置的-Djava.library.path=[path](注:正确的参数格式需要前缀-D,你描述里可能漏写了),是绑定到你当前编辑的那个运行配置上的。也就是说,你只给项目1的运行配置添加了这个自定义参数,只有用这个配置启动项目1时,JVM才会使用你指定的路径;而项目2如果用的是默认的运行配置(或未修改过的配置),自然会使用Eclipse默认的java.library.path值。默认
java.library.path的组成逻辑
项目2输出的路径是Eclipse自动生成的默认值,它的来源主要包括:- 你当前使用的JDK/JRE的
bin目录及相关库目录 - 系统环境变量
PATH中的Java相关路径(比如Windows的system32、Oracle Java的默认路径) - Eclipse自身根据JVM配置拼接的标准路径
- 你当前使用的JDK/JRE的
自定义参数会覆盖默认路径
当你给某个运行配置添加了-Djava.library.path参数后,JVM启动时会优先使用这个自定义路径,替换掉Eclipse自动生成的默认值,这就是为什么项目1的输出是你指定的项目内lib目录路径。
快速验证方法
你可以打开项目2的Run Configurations,切换到Arguments标签页,检查VM arguments里是否没有添加自定义的java.library.path参数。如果需要让项目2也使用相同的路径,直接复制项目1的VM参数即可。
内容的提问来源于stack exchange,提问作者Eugene
相关产品推荐
相关产品推荐

