Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java平台的默认设置是什么?_Java - Fatal编程技术网

java平台的默认设置是什么?

java平台的默认设置是什么?,java,Java,Java API的许多部分根据平台默认值的不同而工作,例如,从SAXParserFactory创建Sax解析器使用基于系统属性“javax.xml.parsers.SAXParserFactory”的不同工厂实现。但是,如果未定义该属性,则使用“平台默认值” 对于任何给定的JVM/平台,我几乎没有机会发现平台默认值是什么。了解何时需要部署到多个平台,或者何时正在调试某些东西,以及何时需要了解有关特定实现的更多信息,这将非常有用 我在哪里可以找到这些默认值(通常是系统属性名)的列表以及各种平台的默

Java API的许多部分根据平台默认值的不同而工作,例如,从SAXParserFactory创建Sax解析器使用基于系统属性“javax.xml.parsers.SAXParserFactory”的不同工厂实现。但是,如果未定义该属性,则使用“平台默认值”

对于任何给定的JVM/平台,我几乎没有机会发现平台默认值是什么。了解何时需要部署到多个平台,或者何时正在调试某些东西,以及何时需要了解有关特定实现的更多信息,这将非常有用


我在哪里可以找到这些默认值(通常是系统属性名)的列表以及各种平台的默认值?

作为一个一般性问题,这在很大程度上取决于讨论中的特定默认值。在SAX解析器的特定情况下,您必须认识到Java规范的编写思想不仅仅是Sun(现在的Oracle)将实现它。因此,当它说“平台默认值”SAXParserFactory时,它意味着JVM实现者决定作为默认值返回的内容。在sunjvm中,这是一个经过修改的apachexerces实现

我不知道任何JVM实现者有任何“这些是我们的默认实现”列表。但对于给定的违约,不难发现


在其他上下文中,平台默认值可以指操作系统(如时区、文件分隔符等)。

Tolstoy.com过去有一个页面,其中包含各种操作系统的默认值,但现在它不见了。。。但是你可以通过互联网的“回头路”机器来检索它

在大多数情况下,平台默认实现恰好是一个在“平台”中始终可用的回退类。在这些情况下,平台被解释为Java运行时环境安装。毕竟,只有平台提供商才能声明默认值。在应用服务器的情况下,该定义可以扩展到包括应用服务器提供的环境,而不仅仅是Java运行时

例如,Sun Java 5及更高版本中的JRE将使用“com.Sun.org.apache.xerces.internal.jaxp.saxparserfactorympl”作为SAXParserFactory的回退实现。这主要是因为Sun的JRE(至少从Java1.4开始)提供了完整的JAXP实现

您可以参考SAXParserFactory和FactoryFinder类的源代码(在javax.xml.parsers包中)来了解这是如何实现的。了解Sun过去在Java1.3中做了什么很有意思,但我不确定这些源代码是否可用

由于在本文中提到了应用程序服务器,因此最好记住某些应用程序服务器(例如Weblogic)将SAXParserFactory设置为服务器级别的所有应用程序都使用。应用程序可以在应用程序级别覆盖它;Weblogic允许您通过。它可以在服务器级别(多个服务器构成一个Weblogic域)或域级别本身被重写,以最低(最适用)配置为准

获取平台默认列表(而是尝试)


正如您现在可能已经了解到的,获取不同平台的默认值可能很困难,尤其是当您不得不担心运行时环境(Sun、IBM、Oracle有自己的运行时;您还需要添加Apache Harmony、GCJ、Kaffe等)和应用程序服务器时。平台默认值也可能因平台而异,对于应用程序服务器而不是实际的Java运行时(IBM AIX上的应用程序服务器不会寻找Sun Java平台回退)。

据我所知,Sun/Oracle交易尚未完成。@Tom,是的,但这些事情似乎不可避免。谢谢,再加上这个列表:是我找到的最好的。