java.ext.dirs Java中的系统属性

时间:2011-04-15 02:15:45

标签: java security code-access-security

我在Windows XP操作系统上使用JDK 1.6。运行一个简单的Java程序来打印java.ext.dirs系统属性的值:

System.getProperty("java.ext.dirs")

打印:

C:\ Program Files \ Java \ jre6 \ lib \ ext; C:\ WINDOWS \ Sun \ Java \ lib \ ext

在打印的两个目录中,第二个目录在我的系统中不存在,即我的系统中没有C:\WINDOWS\Sun\Java\lib\ext目录。

我不明白,为什么Java会为java.ext.dirs返回此非法目录值 属性?  我怎样才能从java.ext.dirs属性中消除这个值?

2 个答案:

答案 0 :(得分:2)

这些是Java将寻找扩展的目录。如果其中一个目录不在那里,那里就找不到任何扩展 - 没什么大不了的,为什么重要?

在任何情况下,如果您愿意,可以在Java命令行上提供-Djava.ext.dirs=PATH

答案 1 :(得分:2)

  

我不明白,为什么Java会为java.ext.dirs属性返回这个非法的目录值?

它返回JVM看起来的位置。如果列表中存在一个不存在的目录,我希望它会被忽略。你在观察不同的东西吗?

  

我怎样才能从java.ext.dirs属性中消除这个值?

我对this page的解读是你应该能够设置属性。 (同一页面解释了如何使用路径,以及如何确定默认值。)

您可能需要通过命令行设置它;例如使用-Djava.ext.dirs=...。我希望在JVM引导之后对属性进行更改才能生效。