我只是想知道Java究竟如何决定其java.library.path
属性的默认值?
我正在运行* buntu 14.04 64位,默认为(前两个不存在):
的/ usr /爪哇/包/ LIB / AMD64
的/ usr / lib64下
/ lib64的
/ lib目录
/ usr / lib
通过我的环境变量搜索,我发现 nothing 中包含了这些变量。设置LD_LIBRARY_PATH
会将其内容添加到此列表中。
鉴于此信息,我假设此列表只是显式设置(硬编码)为Java,但我找不到任何文档。我的假设是否正确?不同操作系统的默认值是什么?这些值会在不同的分布中发生变化吗?
我要问两个原因。 1)我只是好奇。 2)我想知道在哪里放置一个库,以便Java总能找到它。
答案 0 :(得分:1)
在我的Debian系统上,如果我使用命令
检查java.library.path的值 with open("output/boatlist.json", "r") as jdata:
data = json.load(jdata)
data['boats'].sort(key=keyparam)
安装的系统软件包中的java返回正确的值:
"boats": [
{
"Name": "Lagoon 46",
"Price": "Call For Price",
"Size": "46 ft / 2020",
"Location": "Vancouver, British Columbia, Canada"
},
{
"Name": "Lagoon 42",
"Price": "790,000",
"Size": "42 ft / 2021",
"Location": "Vancouver, British Columbia, Canada"
},
{
"Name": "Leopard 40",
"Price": "560,000",
"Size": "40 ft / 2016",
"Location": "Victoria, British Columbia, Canada"
}
]
我在openjdk网站上下载的open-jdk中的java返回:
java -XshowSettings:properties
我在对应的jdk / jvm的二进制libjvm.so中找到了每个返回的值
答案 1 :(得分:-1)
如果要查找机器中当前设置的路径,请运行以下命令。
System.out.println(System.getProperty("java.library.path"));
您可以在代码中明确设置路径,如下所示
System.setProperty(“java.library.path”, “/path/to/library”);
通过命令行
java -Djava.library.path=<path>
此外,我不会将其称为环境变量。它是jvm使用的系统属性。