0

在本文档中:http: //download.oracle.com/javase/6/docs/technotes/guides/standards/它仅描述了一种非编程方式来覆盖 Java 中认可的标准(例如,提供不同的 TransformerFactory 实现等...)。把罐子放进去<java-home>\lib\endorsed

有没有办法以编程方式指定认可的 jar?(查看Tomcat的认可目录,我认为这是可能的,毕竟Tomcat是用Java编写的)

4

1 回答 1

1

Tomcat 在启动 JVM 时也只是设置系统属性,因此使用常规/记录的方式,如类加载器“how-to”中所述(“Tomcat 通过包含系统属性设置 -Djava.endorsed.dirs=$ 来利用此机制启动容器的命令行中的 JAVA_ENDORSED_DIRS。”)

因此,以编程方式完成它并不容易。我假设在 JVM 启动后设置系统属性没有效果(我没有对此进行测试)。

但是,它仍然是可能的:您只需从应用程序中启动另一个 JVM,并在那里设置系统属性。您的应用程序必须首先检查是否设置了认可的目录,如果是,则正常运行,如果没有:用于Runtime.getRuntime().exec(cmdarray)“重新启动自身”(当然,系统属性设置正确)。这个“开始本身”有点复杂,但它是可能的。我工作的公司 ( www.day.com ) 将它用于所有产品,我们称之为“快速入门”。我相信我们实际上并没有设置认可的目录,但是-Xmx..如果当前设置不够,我们会设置最大内存 ()。

于 2011-03-27T08:29:43.610 回答