我不明白为什么在“java”中为少数导入包附加了“x”。是什么原因?不能像其他java.swing.*
一样java.io.*
吗?
答案 0 :(得分:20)
Swing最初是Java的扩展 - 一个可单独下载的库。它成为Java 1.2中“主要”JRE的一部分。如果一个单独的库声称一个java。*包,那将是奇怪的,因此目前的情况。还有很多其他扩展也有类似的故事。
Wikipedia article on Swing有关于其历史的更多信息。
答案 1 :(得分:17)
名称javax
表示Java扩展包,而不是核心包。 Swing类确实是Java 1.1的扩展。因为Swing类不是核心层次结构的一部分,所以可以将Swing类加载到兼容Java 1.1的浏览器中。(浏览器的安全管理器不允许添加任何以“java.
开头的包“。)在Java 2平台上,Swing包不再是扩展,而是核心层次结构的一部分。任何与Java 2兼容的Java实现都必须提供Swing类。然而,为了与Java 1.1代码兼容,javax名称仍然存在。 (实际上,Swing包以com.sun.java.swing
开头,然后在早期的Java 2 beta版本中暂时转移到java.awt.swing
,然后在Java 2 beta版本的后期返回com.sun.java.swing
,之后Java程序员的抗议嚎叫,在javax.swing
找到了最后的安息之地。)
答案 2 :(得分:5)
由于历史原因和向后兼容性。之前java 1.2 swing作为一个独立的包从java分发(因此javax作为扩展)。
当swing成为标准java分发包的一部分时,保留了名称以便向后兼容。 wikipedia文章
中的详细信息答案 3 :(得分:1)
x 是因为它们是扩展程序。在java的1.1版本中没有swing,当它被添加时,他们决定将它命名为:javax
有许多具有相似历史的包。