javaxとjavaの違い

Java SE標準クラスのパッケージでjavaからはじまるのとjavaxからはじまるのがあるが、何が違うんだろうか?


一応こういう説明がありましたが。
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000864.html

javaxパッケージに含まれるクラスは、SwingやサーブレットJDBCの一部となっており、いずれもJavaが誕生してから後に追加された機能となっている。


でも、


New IOは後から追加されたのにjava.nioだよな。後から追加「だけ」の違いではないようだが。。。Java EEのクラスとはjavaxではじまってるな。出身がJava EEで、やっぱSEにもってこようぜ、というパッケージがjavax?どうなんだろーか?いや、SwingはEEじゃないな。やっぱ基本は後から追加か。java1.2ぐらいのときに新しく追加されたパッケージがjavaxで、それ以降は、java.nioとかjava.lang.annotationとかお好みで追加されたのだろうか?


とりあえず、java.sqlとjavax.sqlがまぎらわしい。


このへん関係あんのかな。


標準拡張機能、オプションパッケージ
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/extensions/index.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/extensions/spec.html

オプションパッケージは、オープンで標準的な API を実装したものです (Sun が提供するオプションパッケージは、JavaServlet、Java3D、JavaManagement など)。例外もありますが、オプションパッケージの多くは javax.* の名前空間に割り当てられます。


http://www.cs.dm.u-tokai.ac.jp/~kikn/Java/docs/ja/guide/extensions/ext_faq.html#q9

標準拡張機能にはどのような名前が付けられますか。


標準拡張機能には、javax.* の名前空間内の名前が付けられます。ただし、オープンスタンダードの理由から必要な場合など、場合によって例外も認められるようになる予定です。ただし、パッケージ名が javax で始まるという理由だけでは、そのパッケージがコアプラットフォームの一部ではなく拡張機能であるということにはなりません。Swing パッケージには javax で始まる名前が付けられ、それが Version 1.2 プラットフォームより前の、コア拡張機能ではない拡張機能であることを示します。これらの名前は、javax.* の名前空間内にあっても、コア 1.2 プラットフォームの一部です。

(オープンスタンダードの理由から必要な場合→orgからはじまるクラスとか)


なんとなく、「Java1.2(ぐらい)以降の新規機能のパッケージはjavaxだけどそうでないのものある」ということでよさそうか。