在本文档中:http://download.oracle.com/javase/6/docs/technotes/guides/standards/它只描述了一种非编程方式来覆盖Java中的认可标准(例如,提供不同的TransformerFactory实现等......)。将罐子放入<java-home>\lib\endorsed
有没有办法以编程方式表明一个认可的jar?(看看Tomcat认可的目录,我认为有可能,毕竟Tomcat是用Java编写的)
答案 0 :(得分:1)
Tomcat也只是在启动JVM时设置系统属性,因此使用常规/文档化方式as documented in the classloader 'how-to'(“Tomcat通过包含系统属性设置-Djava.endorsed.dirs = $ JAVA_ENDORSED_DIRS来利用此机制启动容器的命令行。“)
因此,以编程方式执行它并不容易。我假设在JVM启动后设置系统属性没有效果(我没有测试)。
但是,仍然可以:您只需从应用程序中启动另一个JVM,并在那里设置系统属性。您的应用程序必须首先检查是否设置了背书目录,如果是,则运行正常,如果不正确:使用Runtime.getRuntime().exec(cmdarray)
“再次启动”(系统属性当然设置正确)。这种“开始本身”有点复杂,但是它是可能的。我工作的公司(www.day.com)将其用于所有产品,我们将其称为“快速启动”。我相信我们实际上并没有设置背书目录,但如果当前设置不足,我们会设置最大内存(-Xmx..
)。