日期:2014-05-20  浏览次数:20684 次

关于JVM系统属性的设置
请问一下,下面两种设置系统属性的方式有什么区别?
1。通过启动参数设定java   -Djava.library.path=XXX     XXX
2。在代码中设定System.setProperty( "java.library.path ", "XXX ");
我想在程序中加载一些库文件,发现通过第一种方式指定java.library.path时可以正常载入,而使用第二中方式就不行。这是为什么?难道不能在运行时改变java.library.path吗?

还有一个问题,Solaris下如何在运行时改变系统的环境变量,如LD_LIBRARY_PATH。我尝试用Runtime的exec来实现,但在不同的shell下设置环境变量的方式是不同的,难道要根据不同的shell来执行不同的命令吗?有没有更简单一点的方法?


------解决方案--------------------
1、java.library.path只有在JVM启动的时候读取一次,因此在java代码中更改java.library.path是没有作用的
可以用System.load()来加载。或者就像你那样是在运行java class的时候在命令行加参数修改java.library.path
2、shell不清楚