Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Cool EclipsePlugin

情報元:@IT-アットマーク・アイティ
CoolなEclipseプラグイン

第1回 Javaのプロパティファイルを編集するEclipseプラグイン
・ 1.PropertiesEditorプラグイン
・ 2.Tomcat Sysdeoプラグイン
・ 3.HTMLEditorプラグイン

第2回 ソフトウェアの品質向上を支援するプラグイン
・ 1.FindBugs
・ 2.djUnit
・ 3.Enerjy Thread Profiler

第3回 データベース開発を支援するプラグイン
・ 1.Clayプラグイン
・ 2.DbEditプラグイン
・ 3.MiddlegenIDEプラグイン

第4回 Webアプリケーション開発を支援するプラグイン
・ 1.StrutsIDEプラグイン
・ 2.FacesIDEプラグイン
・ 3.Spindleプラグイン

第5回 正規表現の入力・テストを行うプラグイン
・ 1.QuickRExプラグイン
・ 2.Log4Eプラグイン
・ 3.CrossJ PropEditorプラグイン

第6回 サンプルコードの入手をサポートするプラグイン
・ 1.Koders Searchプラグイン
・ 2.Doc Jarプラグイン
・ 3.Commons4Eプラグイン

第7回 プログラミングにあると便利なプラグイン
・ 1.Gotofileプラグイン
・ 2.Wiki Editorプラグイン
・ 3.Editor Enhanncementsプラグイン

第8回 RSSを表示できるEclipseプラグイン
・ 1.Bugdelプラグイン
・ 2.EditorListプラグイン
・ 3.RSS Viewプラグイン

第9回 データベースの利用に便利なEclipseプラグイン
・ 1.Apache Derbyプラグイン
・ 2.HSQLDBプラグイン
・ 3.DBViewerプラグイン

第10回 スクリプト言語をサポートするEclipseプラグイン
・ 1.EPICプラグイン
・ 2.RDTプラグイン
・ 3.PyDevプラグイン

第11回 ビルドを効率化するEclipseプラグイン
・ 1.Jar Retriever
・ 2.m2eclipse
・ 3.Ant Explorer

第12回 便利なプラグインの集大成MyEclipse
・ 1.メリットとデメリット
・ 2.Ajax開発機能
・ 3.Webサービス開発機能
・ 4.GUI開発機能:Matisse4MyEclipse Swing UI Designer

第13回 簡単にFlashアプリを作成できるFlexBuilder 2
・ 1.Flexとは何か?
・ 2.FlexBuilder 2をインストールしてみよう
・ 3.FlexBuilder 2でHello World!

第14回 軽量なUMLプラグインAmaterasUML
・ Page1 Eclipseを使ったUMLモデリングには、どれを使うべきか?
・ AmaterasUMLでできることとは?
・ AmaterasUMLをインストールしよう
・ Page2 まずは、クラス図を作成してみよう
・ Page3 次に、シーケンス図も作ってみよう
・ Page4 最後に、ユースケース図を作成しよう

第15回 バージョン管理に便利なSubversiveプラグイン
・ そもそもSubversionとは何か?
・ Subversionのメリット
・ Subversiveプラグインをインストール
・ Subversiveの利用方法
・ リポジトリを3タイプから選んでインポート
・ ヒストリービューで履歴を確認
・ Tracと連携させて開発を「見える化」する
・ コミットメッセージを好きなようにカスタマイズする
・ クライアントの認証をSSLで行う
・ CVSからの切り替えが簡単

第16回 EPFプラグインでらくらく開発プロセス管理!(入門編)
・ 開発プロセスを決めると、こんな「得」をする
・ 開発プロセスを基礎から理解しよう!
・ EPFプラグインとは何か?
・ EPF Composerをセットアップしよう!
・ 開発プロセスをブラウジングしてみる
・ 開発プロセスをHTML出力してみる
・ 開発プロセスを一から作るには?

第17回 EPFプラグインでらくらく開発プロセス管理!(実践編)
・ 開発プロセスを一から作成するための準備
・ 開発プロセスの構成要素を定義/作成
・ 開発プロセスの構成(論理的なビュー)を定義
・ 個々の要素をプロセスとしてつなぐ
・ EPFの本領発揮! 開発プロセスのテーラリング
・ 開発プロセス作成のススメ

第18回 お決まりコードを設計書から自動生成するblancoCsv
・ 開発現場の犠牲者削減、blanco Frameworkとは?
・ blancoCsvプラグインでは何が自動になる?
・ いまさら聞けない CSVファイルとは?
・ blancoCsvプラグインを使うための下ごしらえ
・ ファイル定義書からのコードの自動生成
・ 自動生成されたコードを実際に利用してみると…
・ blanco Frameworkで開発の効率化を行おう

第19回 Project Zeroでスクリプト+Ajaxのアジャイル開発
・ Project Zero Java版についてゼロから理解する
・ ブログアプリケーションの概要
・ ゼロからブログアプリの開発を始める
・ Zeroアプリケーションを実行してみると……

第20回 ERダイアグラムを編集するAmaterasERDでDB設計
・ AmaterasERDの特徴
・ インストールするには?
・ 試しに、ERダイアグラムを作成してみよう
・ AmaterasERDの特徴の1つ、論理設計
・ 物理設計も簡単
・ DDLファイルの生成
・ 進化するProject Amateras、AIRもサポート

第21回 Apache LDAP StudioでLDAPはもう怖くない
・ LDAPとApacheプロジェクト
・ Apache Directory Studioで何が変わるのか?
・ Apache Directory Studio導入の準備
・ Apache Directory Studioを使うには?
・ 新しいユーザーを追加するには?
・ 便利なLDIFファイル編集機能を使う
・ ディレクトリ・スキーマの作成も簡単!
・ Apache LDAP StudioでLDAPはもう怖くない

第22回 JavaScriptを書かずにAjaxを実現するjMaki
・ jMaki Java版の4つの主な特徴
・ jMaki用Eclipseプラグインのセットアップ
・ Hello jMakiアプリケーションの作成
・ jMakiでJSONを使って通信するには?
・ GoogleマップをJSPから手軽に呼び出してみよう
・ 楽してAjaxアプリケーションを作ろう

第23回 Mylyn&Tracでリズムに乗ってタスクを大掃除♪
・ 世にも不思議なMylynマジックとは?
・ コラム「いまさら聞けない、Tracとは?」
・ Mylyn&Tracによるタスク管理の概要
・ Mylyn&Tracの環境を構築して掃除道具を整える
・ 開発サーバ(Trac)のセットアップと環境設定
・ Eclipseのセットアップと環境設定
・ Mylyn&Tracを使うための設定
・ Mylyn&Tracによるタスク管理、5つの手順
・ コラム 「コンテキストの意義」
・ プロジェクト「見える化」のための秘密兵器

第24回 これはすごい!? コード品質のカイゼン化プラグイン2種
・ テストケースを自動生成するJUnit Factoryとは?
・ JUnit Factoryを使ったテストケースの生成例
・ JUnit Factoryでカバレッジの確認
・ ダッシュボードでテスト状況を把握するには?
・ JUnit Factoryを使う際の注意点
・ 保守性が高いコードか計測するCrap4jとは?
・ あなたのソースコードは“保守”しやすいですか?
・ ソフトウェアの品質を効率よく向上させるために

EclipseでJavaに強くなる

J2ME and CDT

This infomation is about J2ME and CDT development by Eclipse.
Before Eclipse_plugins are installed, These tools are needed.

J2ME Dev Tool:
wireless_toolkit 2.5.2

CDT Dev Tool:
MinGW-5.1.3
MSYS-1.0.10
gdb-6.3-2

Others Infomation:
もっと楽しむ!!ニンテンドーDS
ipmsg home
nakka home
ed2k://|file|[Chinese.Writer.V9].CWV9.iso|543602688|6e93fb3724a0ea7d50f14bc6d7b419b4|h=EGSHYMSXYAHQOWY7SC5VBYZEJ2N7O6M6|/

Create JNI_DLL by CL

cl /c /GX -IC:\j2sdk1.4.2_11\include -IC:\j2sdk1.4.2_11\include/win32 yourname.cpp
link /OUT:yourname.dll /NOLOGO /DLL yourname.obj kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib LIBCMT.lib /NODEFAULTLIB:LIBC.LIB

OpenOfficeIntroduce

--install openOffice (2.3~)
--install openOffice_SDK (2.3~ no-space-dir)
--install openOffice_eclipse_plugin
      Help > Software updates > Find and Install:
      http://cedric.bosdonnat.free.fr/ooeclipseintegration
--install openOffice_SDK to eclipse
      window > preferences > openoffice.orgPlugin > sdkConfiguration

OOmacro by JavaEclipseNew
OOmacro by JavaEclipseOld

JavaSpeechAPI

Java Speech APIとは
Java Speech API(以下、JSAPI)はJavaアプリケーションに音声認識や音声合成の機能を組み込むためのAPIである。Java Speech API自身はJCPがスタートする前に発表されたのでJSRは存在せず、Sun Microsystemsのサイト上でその仕様が公開されている。

JSAPIを使用することで、Javaプログラムで音声の認識や合成を行うことができるようになる。たとえば、合成音声によってテキストを読み上げるというような処理の実装が容易に行える。

JSAPIの代表的な実装としてはオープンソースで開発されているFreeTTSがある。商用の音声認識/合成ツールのような高度な機能は有していないが、JSAPIを試すには十分な機能を提供してくれる。

MG4J

MG4J (Managing Gigabytes for Java) is a free full-text search engine for large document collections written in Java. As a by-product, it offers several general-purpose optimised classes, including fast & compact mutable strings, bit-level I/O, (possibly signed) minimal perfect hashing for very large strings collections, etc.

With release 1.1, MG4J becomes a highly customisable, high-performance, full-fledged search engine providing state-of-the-art features (such as BM25 scoring) and new research algorithms. Release 2.0 significantly improved performance and introduced several new features.

The main points of MG4J are:

* Powerful indexing. Support for document collections and factories makes it possible to analyse, index and query consistently large document collections, providing easy-to-understand snippets that highlight relevant passages in the retrieved documents.
* Efficiency. We do not provide meaningless data such as "we index x GiB per second" (with which configuration? which language? which data source?)—we invite you to try it. MG4J can index without effort the TREC GOV2 collection (document factories are provided to this purpose) and scales to hundreds of millions of documents.
* Multi-index interval semantics. When you submit a query, MG4J returns, for each index, a list of intervals satisfying the query. This provides the base for several high-precision scorers and for very efficient implementation of sophisticated operators. The intervals are built in linear time using new research algorithms.
* Expressive operators. MG4J goes far beyond the bag-of-words model, providing efficient implementation of phrase queries, proximity restrictions, ordered conjunction, and combined multiple-index queries. Each operator is represented internally by an abstract object, so you can easily plug in your favourite syntax.
* Virtual fields. MG4J supports virtual fields—fields containing text for a different, virtual document; the typical example is anchor text, which must be attributed to the target document.
* Flexibility. You can build much smaller indices by dropping term positions, or even term counts. It's up to you. Several different types of codes can be chosen to balance efficiency and index size. Documents coming from a collection can be renumbered (e.g., to match a static rank or experiment with indexing techniques).
* Openness. The document collection/factory interfaces provide an easy way to present your own data representation to MG4J, making it a breeze to set up a web-based search engine accessing directly your data. Every element along the path of query resolution (parsers, document-iterator builders, query engines, etc.) can be substituted with your own versions.
* Distributed processing. Indices can be built for a collection split in several parts, and combined later. Combination of indices allows non-contiguous indices and even the same document can be split across different collections (e.g., when indexing anchor text).
* Multithreading. Indices can be queried and scored concurrently.
* Clustering. Indices can be clustered both lexically and documentally (possibly after a partitioning). The clustering system is completely open, and user-defined strategies decide how to combine documents from different sources. This architecture makes it possible, for instance, to load in RAM the part of an index that contains terms appearing more frequently in user queries.

The starting point for understanding MG4J is a look at the tutorial, which explains how to index a sample collection and query the newly constructed index from the command line or using a browser. Then, the Javadoc class documentation can provide more insights.

Eclipse-plugin

紹介

Callisto(カリスト)を利用してのインストール

 Callistoとは,Eclipseプロジェクトで開発されている複数の代表的なプラグインを,更新マネージャを利用して,簡単にインストールできるようにするものです。高機能なプラグインは,Eclipseプロジェクトで開発されているEMF(Eclipse Modeling Framework),GEF(Graphical Editing Framework),WTP(Eclipse Web Tools Platform)といったプラグインに依存することが多く,Callistoの使い方を覚えておくと便利です。

 また,プラグインを複数インストールする際,連鎖的に他のプラグインへの依存が発生し問題が生じる場合がありますが,Callistoでインストールしたプラグインは整合性が保たれているので,手軽にプラグインのインストールを行うことが出来ます。


以下の手順で利用します。

(1)ヘルプメニューから[ソフトウエア更新]→[検索およびインストール]を選択[Help]-->[Software Updates]-->[Find and Install]
(2)「インストールする新規フィーチャーを選択」をチェックし,[次へ]をクリック
(3)「Callisto ディスカバリー・サイト」を選択し,[終了]をクリック
(4)適当なミラー・サイトを選択し,[OK]をクリック
(5)様々なプラグインが表示されますので,必要なものを選択し,[次へ]をクリック
(6)ライセンスへの同意などを了承すると,インストールが開始される

◆All-In-One-Ecilpse ◆AmaterasIDE Installer ◆MyEclipse


プラグインの有効化/無効化

 プラグインは,インストールした後に無効化することができます(もちろん有効化も可能)。Eclipse起動後にメニューバーの[ヘルプ]→[ソフトウエア更新]→[構成の管理]を選択します。

 無効にする場合は,当該プラグインを選択し,右のビューで「使用不可にする」をクリックするか,当該プラグインを右クリックして「使用不可にする」を選択します。その際,他のプラグインがそれを使っているなどの依存関係がある場合には無効になりません。その後,Eclipseを再起動するとプラグインが無効になります。


プラグインのアンインストール方法

 最後に,プラグインのアンインストール方法を紹介しておきましょう。最も一般的な方法は,Eclipseをインストールしたフォルダ直下の「plugins」「features」にコピーしたフォルダをそのまま削除する方法です。

 この場合,起動時に指定したワークスペース用フォルダ内の「.metadata」フォルダ→「.plugins」フォルダ配下にある各種プラグインのフォルダに,当該プラグインの設定が残っているため,それも併せて削除すれば,もともとの設定に戻ります。

 そのほかに,アンインストール用のjarファイルを指定してjavaを起動するプラグインもあります。


基本的なプラグイン(10個)

■プロパティエディタプラグイン
 Java開発では,アプリケーションの設定ファイルや,メッセージ・リソース用のファイルとしてプロパティ・ファイルを利用する場合があります。
 プロパティ・ファイルに日本語を含む場合は,native2asciiコマンドなどを利用してユニコード・エスケープ形式に変換する必要があります。このプロパティエディタプラグインを使用すると,エディタ上では日本語でファイルを編集でき,ファイルの保存時にユニコード・エスケープ形式への変換を自動で行ってくれます。

■CheckStyleプラグイン
 Checkstyleプラグインは,ソースコードのコーディング規約違反をチェックするツールです。チェックを有効にするには,プロジェクトを[右クリック]-[プロパティ]-[Checkstyle]をクリックし,「Checkstyle active for this project」チェックボックスにチェックを入れます。

■Log4E
 Log4Eは,各種ログライブラリを操作するソースコードを自動的に生成してくれるプラグインです。JDK 1.4から標準APIに加わったLoggingAPI,オープンソースの代表的なログ出力ライブラリのcommons-logging,Log4Jに対応しています。
 Javaエディタ上で右クリックして表示されるメニュー「Log4E」のサブメニューを選択することで以下のことが可能です。
  * Declare logger : ログ出力変数の定義
  * Log this variable : 選択した変数をログ出力
  * Log at this position : 指定した位置に任意のログを出力
  * Log this method : メソッドの開始,終了ログを出力
  * Log this class : ログ出力変数の定義,メソッドの開始,終了ログを出力
  * Substitute System.out's in this method : 選択したメソッド中のSystem.out.printlnをログ出力に変更
  * Substitute System.out's in this class : クラス中のすべてのSystem.out.printlnをログ出力に変更
 使用するログライブラリは[ウィンドウ]-[設定]-[Log4E]で変更することができます。

■LogWatcher
 Log4Eと組み合わせて使いたいのが,LogWatcherプラグインです。LogWatcherを使うと,ログファイルをEclipseのビュー上に表示できます。単に表示するだけではなく,ファイルに出力されているログをビュー上でリアルタイムに確認することができます。アプリケーション・サーバーなどが自動的に出力するログなどを確認するのに役に立つでしょう。
 LogWatcherビューを開くには,[ウィンドウ]-[ビューの表示]-[その他]で表示されるリストから,[Log Files]-[Log Watcher]を選択します。新たに表示するログファイルを選択する場合,ビュー上部メニューの「Create a new watcher」をクリックし,ログファイルを選択します。

■Eclipse Platform Extensions
 Eclipse Platform Extensionsは,Eclipseにいくつかの便利な機能を追加してくれるプラグインです。インストールすると,メニュバーの[ファイル]に以下のメニューが追加されます。
  * Restart Workbench : Eclipseの再起動
  * Run Garbage Collection : ガーベジコレクションの実行
 また,パッケージエクスプローラ上で右クリックして表示されるメニューには以下の機能が追加されます。
 Open Folder
  In Navigator : 選択したディレクトリをリソースパースペクティブで開く
  In Explorer : 選択したディレクトリをエクスプローラで開く
  In Command Prompt : 選択したディレクトリをコマンドプロンプトで開く
 Copy Name To Clipboard
  Fully Quarified Name : 選択したJavaファイルのクラス名(パッケージから指定した完全修飾クラス名)をクリップボードにコピーする
  File Name : 選択したファイルの名前(ファイル・システム上の絶対パス)をクリップボードにコピーする

■Commons4E
 Commons4Eは,オープンソース・コミュニティApache Jakartaプロジェクトのプロダクトの一つで,commons-langを使用して典型的なコードを出力してくれるプラグインです。
 提供されている機能は,以下のメソッド
  * equals()
  * hashCode()
  * toString()
  * compareTo()
の自動生成です。
 Javaエディタ上で[右クリック]-[Commons4E Lang]を選択すると,対象のメソッド名が表示されます。例えば,toString()メソッドを選択すると,文字列化したい対象のフィールドや,出力する位置などを指定できます。
 なお,commons-langのクラスパスへの追加は手動で設定しなければならないので注意してください。

■FindBugs
 FindBugsは,Javaソースコード中のバグの可能性がある個所を指摘してくれるプラグインです。バグの発生を開発中に未然に防ぐことができます。チェックを実行したい対象のプロジェクト上で右クリックし,「Find Bugs」を実行すると,「問題」ビュー上にバグの可能性がある個所が一覧表示されます。

■DocJar
 DocJarは,Eclipseのビュー上でJavadocの検索,閲覧ができるプラグインです。

■Eclipse Metrics Plugin
 Eclipse Metrics Pluginは,ソフトウエア・メトリクスを計測するためのプラグインです。ソフトウエア・メトリクスとは,ソフトウエアの品質を様々な視点から定量的に評価したものです。代表的な視点としては
  * LOC(Line of Code) : コード行数
  * Complexity : 複雑度
  * Couplings : 結合度
などがあります。

■AnyEdit
 AnyEditプラグインは,Javaエディタを右クリックしたときに表示されるメニューにいくつかの便利な機能を追加してくれます。具体的には,Javaエディタ上で右クリックすると「Convert」というメニューが追加されます。「Convert」のサブメニューで選択できる機能は以下の通りです。
  * Leading tabs to spaces : タブ文字をスペースに変換する
  * Leading spaces to tabs : スペースをタブ文字に変換する
  * Chars to Html entities : 選択した文字列をHTMLエスケープする
  * Html entities to chars : HTMLエスケープされた文字を通常の文字列に戻す
  * Capitalize : 先頭の文字を大文字に変換する
  * Invert case : 大文字と小文字を入れ替える
  * To upper case : 選択したすべての文字を大文字に変換する
  * To lower case : 選択したすべての文字を小文字に変換する
 Javadocを記述するとき,HTMLのタグは,「table」→「<table>」のようにエスケープ処理された形で記述しなければなりません。これはなかなか手間がかかります。「Html entities to chars」を使用すれば,選択範囲を一括で変換してくれるのでjavadocの記述が楽になります。

Plug-in Catalogueのページ
http://www.eclipse.org/community/plugins.php
ここで紹介したプラグイン

■プロパティエディタプラグイン
説明:プロパティファイル編集用エディタ
ライセンス:GPL
提供元:http://propedit.sourceforge.jp/

■CheckStyleプラグイン
説明:コーディング規約チェック
ライセンス:LGPL
提供元:http://sourceforge.net/projects/eclipse-cs

■Log4Eプラグイン
説明:ログ出力実装
ライセンス:フリー/有償
提供元:http://log4e.jayefem.de/index.php/Main_Page

■LogWatcher
説明:ログ表示
ライセンス:CPL
提供元:http://graysky.sourceforge.net/

■Eclipse Platform Extensions
説明:プラットフォーム拡張
ライセンス:AFL
提供元:http://sourceforge.net/projects/ttl/

■Commons4E
説明:jakarta common-langサポート
ライセンス:EPL
提供元:http://www.jiayun.org/mediawiki/index.php?title=Commons4E

■FindBugs
説明:バグの可能性があるソースコードを指摘
ライセンス:GPL
提供元:http://findbugs.sourceforge.net/

■DocJar
説明:Javadoc検索
ライセンス:フリー
提供元:http://www.docjar.com/

■Eclipse Metrics Plugin
説明:メトリクス計測
ライセンス:CPL
提供元:http://eclipse-metrics.sourceforge.net/

■AnyEdit
説明:テキスト変換
ライセンス:BSD Lisence
提供元:http://andrei.gmxhome.de/anyedit/index.html

Eclipse-GUI

■Visual Editorプラグイン
(1)グラフィカル・エディタ
(2)ソース・エディタ
(3)デザインパレット
(4)Java Beanビュー
(5)プロパティビュー
(6)カスタマイズ・レイアウト・ウィンドウ

■WindowBuilder Pro
 実際の開発現場でVEを利用することは可能でしょうか?
正直なところ,それは難しいでしょう。VEに任せられるのは(今のところ)
簡単なツールの開発や,Eclipseプラグインの作成が関の山です。
 VEよりも実用に耐えうるプラグインとして候補にあがるのは,
間違いなく「Window Builder Pro」です。
価格/ライセンス 無償(trial version),有償(Commercial license:299ドルから)

■Matisse4MyEclipse
NetBeansには「Matisse」という高機能なGUIビルダが提供されています。
ここで紹介する「Matisse4MyEclipse」は,このMatisseをEclipse上で利用するためのプラグインです。
(ただ,年間ランセンス料49.95ドル)

■Jigloo SWT/Swing GUI Builder
説明 GUIビルダ・プラグイン(Swing/SWT対応)
価格/ライセンス 75ドル(非商用利用は無償)


Eclipse-WEB

■Eclipse WTP
──J2EE用プラグインセットの大本命
 Eclipse WTP(Web Tools Platform)とは,Eclipse開発元が提供している,サーバーサイド・アプリケーションの開発環境の決定版です。サーバーサイド・アプリケーションを構成する各種ファイル用のエディタと,J2EE仕様に基づいたアプリケーションに必要となるweb.xmlの編集,サーブレットの作成,JSPの編集,カスタムタグの補完,アプリケーションのJ2EEサーバーへのデプロイ,デバッグなどの機能を持っています。
 データベースへの接続もサポートしており,EclipseからSQLを実行することも可能です。また,Webアプリケーションだけでなく,EJB やWebサービスの開発,EJBとWebアプリケーションを組み合わせたエンタープライズ・アプリケーションの開発を支援する機能も含んでおり,J2EE アプリケーション開発をフルセットでサポートする機能が揃っています。
主な機能
  * HTML,XML,JSP,CSS,JavaScriptの構造化エディタ(色付け,補完,文法の検証)
  * ServletやEJBのウィザード形式での作成,設定の検証
  * 多種のJ2EEサーバーとの連携(起動,デプロイ,デバッグ実行)
  * データベースとの連携(接続,検索,更新,SQLの実行)
  * 複数のWebアプリケーション,EJBなどを含んだエンタープライズ・アプリケーションの作成
  * XDocletと連携したWebおよびEJB関連ファイルの生成
  * Eclipse内部で動作するWebブラウザ
  * Webサービスの作成,WSDLの編集,クライアントの自動生成,テスト用UDDI

■AmaterasIDE
──Webアプリケーション用の軽量で気が利いたプラグインセット
 AmaterasIDEは,Tomcat上で動作するアプリケーションをターゲットに定めた,JSFやStrutsフレームワーク用のプラグインを含んだパッケージです。EJBの機能を利用しないのであればWTPより軽量です。
 AmaterasIDEにはEclipse SDKや言語パック,プロパティエディタなどが厳選されて収録されているため,インストール直後から普通に日本語が使えるというのも大きな魅力です。
主な機能
  * Struts設定ファイルのグラフィカルな編集(Amateras StrutsIDE)
  * Faces設定ファイルのグラフィカルな編集(Amateras FacesIDE)
  * HTMLファイルのビジュアル編集(Amateras EclipseHTMLEditor)
  * プロジェクトのTomcatへのデプロイ,Tomcatの起動/終了(Sysdeo Tomcat)
  * データベースの閲覧(DBViewer)
  * Subversionとの連携(Subclipse)
  * ソースの静的チェック(CheckStyle,FindBugs)

■MyEclipse
──実績&サポートのある様々なプラグインのセット
 MyEclipseは,米Genuitecが提供している,様々なプラグインをセットにしたものです。日本国内では日立製作所が日本語化し,技術サポート付きで販売しています。Eclipse SDKに,以下の機能を含んだプラグインが追加されます。
主な機能
  * WTP(機能強化版)
  * SQLエクスプローラー(sqlexplorerベース)
  * HTML,JSPのビジュアル編集
  * Struts設定ファイルの編集支援,検証(EasyStrutsベース)
  * Faces設定ファイルの編集支援,検証
  * Tapestry・Spindleテンプレートの編集支援,検証
  * データベースからのクラス生成およびORマッピング生成支援(Hibernate Tools)
  * Spring設定ファイルの編集支援,検証(SpringIDE)
  * JavaScriptのデバッグ,DOMインスペクタ
  * Bugzillaとの連携
  * Matisse Layout Manager
  * イメージエディタ

◆SpringIDE
──SpringFrameworkのためのプラグイン
 SpringIDEは,DI/AOPコンテナのデファクト・スタンダードであるSpringFrameworkのためのプラグインです。
主な機能
  * Spring設定ファイルの編集支援,検証
  * Spring設定ファイルの内容をグラフィカルに表示
  * 設定されたアスペクトをソース上にマーキング
 SpringFramework本体もプラグインに含まれていますが,後々のために別途ダウンロードしておくことをお勧めします。

JDK6-JRuby-NetBeans

JDK1.6 JRuby1.0 NetBeans5.5.1
http://java.sun.com/javase/reference/api.jsp
http://java.sun.com/javase/ja/6/download.html
http://www.netbeans.org/ 又は www.sun.com
http://www.netbeans.org/kb/55/using-netbeans/index_ja.html

まずJDK1.6をダウンロード、インストール、環境変数を設定する()。

JRuby1.0をダウンロード、解凍、c:¥以下におく。
JRuby1.0の環境変数pathにC:¥jruby-1.0¥binを追加する。
jrubyを試す C:¥jruby-1.0¥bin>jruby.bat
jrubyを試す C:¥jruby-1.0¥samples>jruby swing2.rb

NetBeansをダウンロード、インストール
NetBeansデフォルトAPSのユーザ名/パスワードは: admin/adminadmin.

⑦環境変数JDK1.4
CLASSPATH
.;C:\j2sdk1.4.2_11\lib\tools.jar;C:\j2sdk1.4.2_11\lib\dt.jar;C:\j2sdk1.4.2_11\lib\htmlconverter.jar
JAVA_HOME
C:\j2sdk1.4.2_11
Path
.;C:\j2sdk1.4.2_11\bin;C:\j2sdk1.4.2_11\jre\bin

⑧環境変数JDK1.6
CLASSPATH
.;C:\Program Files\Java\jdk1.6.0_01\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_01\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_01\lib\htmlconverter.jar
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_01
Path
.;C:\Program Files\Java\jdk1.6.0_01\bin;C:\Program Files\Java\jdk1.6.0_01\jre\bin

String基本

class StringDump {
public static void main(String[] args) {
String str = "問題の発生している文字列";
System.out.println(str);
char[] buf = str.toCharArray();
for (int i = 0; i < buf.length; i++) {
System.out.print(Integer.toString(buf[i], 16) + " ");
//Integer.toString(buf[i], 16).toUpperCase()
}
}
}

/*
>>javac StringDump.java
>>java StringDump

問題の発生している文字列
554f 984c 306e 767a 751f 3057 3066 3044 308b 6587 5b57 5217

>>


カノニカライゼーション
一般に、メソッド equals() が true を返す等価なオブジェクトを、演算子 == が true
を返す一意なオブジェクトで置き換えることを、カノニカライゼーション (Canonicalization)
と呼びます。オブジェクトの種類ごとに生成されるインスタンスの個数を一つに制限するので、
インスタンス化の回数を減らし、データの一意化を促します。
String 型オブジェクトの生成は、JVMの実行時コンスタント・プール
で低レベルに実装されているものの一つです。
事象
次のコードでは、同じ文字列オブジェクトが参照されます。
String str1 = "Hello";
String str2 = "Hello"; // str1 == str2 is true

次のコードは別の文字列オブジェクトを生成して参照します。
String str1 = "Hello";
String str2 = new String("Hello"); // str1 == str2 is false

str1 == str2 は、前者の例では true を返しますが、後者の例では false を返します。== は変数に代入されている値を比較するものなので、別のオブジェクトへの参照を保持していれば、false が返るのです。文字列オブジェクトに保持されている文字列が等価であることを評価する場合は equals() を使います。次のコードは、いずれの場合でも true を返します。
boolean bln = str1.equals(str2); // bln is true

class CanonicalStringDemo {
public static void main(String[] args) {
String str1 = args[0];
String str2 = "こんにちは";
String str3 = new String("こんにちは");

// 非カノニカル表現
System.out.println("Not Canonical representation:");
System.out.println("\t" + (str1 == str2));
System.out.println("\t" + (str1 == str3));

// カノニカル表現
System.out.println("Canonical representation:");
System.out.println("\t" + (str1.intern() == str2.intern()));
System.out.println("\t" + (str1.intern() == str3.intern()));
}
}


>javac CanonicalStringDemo.java
>java CanonicalStringDemo "こんにちは"
Not Canonical representation:
false
false
Canonical representation:
true
true
*/

Java Code

 Javaでは文字列はUnicodeとして取り扱われます。つまりString、キャラクタ配列、
キャラクタストリーム上で操作される文字列はUnicodeになります。
 逆にSJISやEUCのようなネイティブなコード系で記述されたテキストはJavaにとっては
バイト列が格納されたバイナリファイルとして存在します。つまりネイティブなコード系
はバイト配列とバイトストリームとして取り扱われるわけです。
 このためコード系変換はネイティブなコード系が格納されているテキストファイル
(Javaにとってはバイナリファイル)に対する入出力のタイミングで行われます。
 バイナリファイルに格納されているバイト列からキャラクタ列への変換のタイミングで
ネイティブのコード系はUnicodeに変換され、逆にキャラクタ列からバイト列への変換の
タイミングでUnicodeはネイティブのコード系に変換されます。

変換例:
String unicodeStirng = new String(data.getBytes("iso-8859-1"), "Shift_JIS");
String unicodeStirng = new String(data.getBytes("Shift_JIS"), "EUC_JP");

エンコーディング名別名一覧:
以下のエンコーディング名別名一覧は j2sdk-1_3_1-src.tar.gz に含まれている
/j2sdk1.3.1/src/share/classes/sun/io/CharacterEncoding.java からの抜粋です。

java.lang.String#getBytes() などのエンコーディング名を使用する場面で使われます。
ハッシュの値(右側)を正式名としているようです。大文字小文字を判断します。
ハッシュのキー(左側)は正式名に対する別名です。こちらは大文字小文字を判断しません。
このため別名の "jis" を "JIS" と書くのはOKですが、正式名の "ISO2022JP" を "iso2022jp"
と書くことはできません。

以下の抜粋では、最初に日本語用エンコーディング名別名一覧をまとめました。
そのあとに全エンコーディング名別名一覧(日本語用含む)が続きます。



========== 日本語用エンコーディング名別名一覧 START ==========
// Specialized auto-detection for Japanese charsets
aliasTable.put("jis auto detect", "JISAutoDetect");

// MIBenum: 16/39
aliasTable.put("jis", "ISO2022JP");
aliasTable.put("iso-2022-jp", "ISO2022JP");
aliasTable.put("csiso2022jp", "ISO2022JP");
aliasTable.put("jis_encoding", "ISO2022JP");
aliasTable.put("csjisencoding", "ISO2022JP");

// MIBenum: 17/2024
aliasTable.put("shift_jis", "MS932");
aliasTable.put("ms_kanji", "MS932");
aliasTable.put("csshiftjis", "MS932");
aliasTable.put("windows-31j", "MS932");
aliasTable.put("cswindows31j", "MS932");
aliasTable.put("x-sjis", "MS932");

// JIS-defined Shift JIS
注:"シフト符号化表現" と書かれています。
aliasTable.put("\u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe",
"SJIS"); // JIS name
aliasTable.put("pck", "SJIS"); // Solaris PCK

// MIBenum: 18
// Japanese EUC
aliasTable.put("eucjis", "EUC_JP");
aliasTable.put("euc-jp", "EUC_JP");
aliasTable.put("eucjp", "EUC_JP");
aliasTable.put("extended_unix_code_packed_format_for_japanese",
"EUC_JP");
aliasTable.put("cseucpkdfmtjapanese", "EUC_JP");
aliasTable.put("x-euc-jp", "EUC_JP");
aliasTable.put("x-eucjp", "EUC_JP");

// For handing only JIS0202 and JIS0208 in linux
aliasTable.put("euc-jp-linux", "EUC_JP_LINUX");
========== 日本語用エンコーディング名別名一覧 END ==========


========== 全エンコーディング名別名一覧 START ==========
aliasTable.put("us-ascii", "ASCII");
aliasTable.put("ascii", "ASCII");
aliasTable.put("646", "ASCII"); // Solaris POSIX locale
aliasTable.put("iso_646.irv:1983", "ASCII"); // Linux POSIX locale
aliasTable.put("ansi_x3.4-1968", "ASCII"); // Caldera linux
aliasTable.put("iso646-us", "ASCII");
aliasTable.put("default", "ASCII"); // compatibility with obsolete "Default" converters
aliasTable.put("ascii7", "ASCII"); // compatibility with obsolete "Default" converters

// MIBenum: 4
aliasTable.put("8859_1", "ISO8859_1");
aliasTable.put("iso_8859-1:1987", "ISO8859_1");
aliasTable.put("iso-ir-100", "ISO8859_1");
aliasTable.put("iso_8859-1", "ISO8859_1");
aliasTable.put("iso-8859-1", "ISO8859_1");
aliasTable.put("iso8859-1", "ISO8859_1");
aliasTable.put("latin1", "ISO8859_1");
aliasTable.put("l1", "ISO8859_1");
aliasTable.put("ibm819", "ISO8859_1");
aliasTable.put("ibm-819", "ISO8859_1");
aliasTable.put("cp819", "ISO8859_1");
aliasTable.put("819", "ISO8859_1");
aliasTable.put("csisolatin1", "ISO8859_1");

// MIBenum: 5
aliasTable.put("8859_2", "ISO8859_2");
aliasTable.put("iso_8859-2:1987", "ISO8859_2");
aliasTable.put("iso-ir-101", "ISO8859_2");
aliasTable.put("iso_8859-2", "ISO8859_2");
aliasTable.put("iso-8859-2", "ISO8859_2");
aliasTable.put("iso8859-2", "ISO8859_2");
aliasTable.put("latin2", "ISO8859_2");
aliasTable.put("l2", "ISO8859_2");
aliasTable.put("ibm912", "ISO8859_2");
aliasTable.put("ibm-912", "ISO8859_2");
aliasTable.put("cp912", "ISO8859_2");
aliasTable.put("912", "ISO8859_2");
aliasTable.put("csisolatin2", "ISO8859_2");

// MIBenum: 6
aliasTable.put("8859_3", "ISO8859_3");
aliasTable.put("iso_8859-3:1988", "ISO8859_3");
aliasTable.put("iso-ir-109", "ISO8859_3");
aliasTable.put("iso_8859-3", "ISO8859_3");
aliasTable.put("iso-8859-3", "ISO8859_3");
aliasTable.put("iso8859-3", "ISO8859_3");
aliasTable.put("latin3", "ISO8859_3");
aliasTable.put("l3", "ISO8859_3");
aliasTable.put("ibm913", "ISO8859_3");
aliasTable.put("ibm-913", "ISO8859_3");
aliasTable.put("cp913", "ISO8859_3");
aliasTable.put("913", "ISO8859_3");
aliasTable.put("csisolatin3", "ISO8859_3");

// MIBenum: 7
aliasTable.put("8859_4", "ISO8859_4");
aliasTable.put("iso_8859-4:1988", "ISO8859_4");
aliasTable.put("iso-ir-110", "ISO8859_4");
aliasTable.put("iso_8859-4", "ISO8859_4");
aliasTable.put("iso-8859-4", "ISO8859_4");
aliasTable.put("iso8859-4", "ISO8859_4");
aliasTable.put("latin4", "ISO8859_4");
aliasTable.put("l4", "ISO8859_4");
aliasTable.put("ibm914", "ISO8859_4");
aliasTable.put("ibm-914", "ISO8859_4");
aliasTable.put("cp914", "ISO8859_4");
aliasTable.put("914", "ISO8859_4");
aliasTable.put("csisolatin4", "ISO8859_4");

// MIBenum: 8
aliasTable.put("8859_5", "ISO8859_5");
aliasTable.put("iso_8859-5:1988", "ISO8859_5");
aliasTable.put("iso-ir-144", "ISO8859_5");
aliasTable.put("iso_8859-5", "ISO8859_5");
aliasTable.put("iso-8859-5", "ISO8859_5");
aliasTable.put("iso8859-5", "ISO8859_5");
aliasTable.put("cyrillic", "ISO8859_5");
aliasTable.put("csisolatincyrillic", "ISO8859_5");
aliasTable.put("ibm915", "ISO8859_5");
aliasTable.put("ibm-915", "ISO8859_5");
aliasTable.put("cp915", "ISO8859_5");
aliasTable.put("915", "ISO8859_5");

// MIBenum: 9
aliasTable.put("8859_6", "ISO8859_6");
aliasTable.put("iso_8859-6:1987", "ISO8859_6");
aliasTable.put("iso-ir-127", "ISO8859_6");
aliasTable.put("iso_8859-6", "ISO8859_6");
aliasTable.put("iso-8859-6", "ISO8859_6");
aliasTable.put("iso8859-6", "ISO8859_6");
aliasTable.put("ecma-114", "ISO8859_6");
aliasTable.put("asmo-708", "ISO8859_6");
aliasTable.put("arabic", "ISO8859_6");
aliasTable.put("csisolatinarabic", "ISO8859_6");
aliasTable.put("ibm1089", "ISO8859_6");
aliasTable.put("ibm-1089", "ISO8859_6");
aliasTable.put("cp1089", "ISO8859_6");
aliasTable.put("1089", "ISO8859_6");

// MIBenum: 10
aliasTable.put("8859_7", "ISO8859_7");
aliasTable.put("iso_8859-7:1987", "ISO8859_7");
aliasTable.put("iso-ir-126", "ISO8859_7");
aliasTable.put("iso_8859-7", "ISO8859_7");
aliasTable.put("iso-8859-7", "ISO8859_7");
aliasTable.put("iso8859-7", "ISO8859_7");
aliasTable.put("elot_928", "ISO8859_7");
aliasTable.put("ecma-118", "ISO8859_7");
aliasTable.put("greek", "ISO8859_7");
aliasTable.put("greek8", "ISO8859_7");
aliasTable.put("csisolatingreek", "ISO8859_7");
aliasTable.put("ibm813", "ISO8859_7");
aliasTable.put("ibm-813", "ISO8859_7");
aliasTable.put("cp813", "ISO8859_7");
aliasTable.put("813", "ISO8859_7");

// MIBenum: 11
aliasTable.put("8859_8", "ISO8859_8");
aliasTable.put("iso_8859-8:1988", "ISO8859_8");
aliasTable.put("iso-ir-138", "ISO8859_8");
aliasTable.put("iso_8859-8", "ISO8859_8");
aliasTable.put("iso-8859-8", "ISO8859_8");
aliasTable.put("iso8859-8", "ISO8859_8");
aliasTable.put("hebrew", "ISO8859_8");
aliasTable.put("csisolatinhebrew", "ISO8859_8");
aliasTable.put("ibm916", "ISO8859_8");
aliasTable.put("ibm-916", "ISO8859_8");
aliasTable.put("cp916", "ISO8859_8");
aliasTable.put("916", "ISO8859_8");

// MIBenum: 12
aliasTable.put("8859_9", "ISO8859_9");
aliasTable.put("iso-ir-148", "ISO8859_9");
aliasTable.put("iso_8859-9", "ISO8859_9");
aliasTable.put("iso-8859-9", "ISO8859_9");
aliasTable.put("iso8859-9", "ISO8859_9");
aliasTable.put("latin5", "ISO8859_9");
aliasTable.put("l5", "ISO8859_9");
aliasTable.put("ibm920", "ISO8859_9");
aliasTable.put("ibm-920", "ISO8859_9");
aliasTable.put("cp920", "ISO8859_9");
aliasTable.put("920", "ISO8859_9");
aliasTable.put("csisolatin5", "ISO8859_9");

// MIBenum: ???
aliasTable.put("8859_13", "ISO8859_13");
aliasTable.put("iso_8859-13", "ISO8859_13");
aliasTable.put("iso-8859-13", "ISO8859_13");
aliasTable.put("iso8859-13", "ISO8859_13");


// MIBenum: ????
aliasTable.put("8859_15", "ISO8859_15_FDIS");
aliasTable.put("iso-8859-15", "ISO8859_15_FDIS");
aliasTable.put("iso_8859-15", "ISO8859_15_FDIS");
aliasTable.put("iso8859-15", "ISO8859_15_FDIS");
aliasTable.put("ibm923", "ISO8859_15_FDIS");
aliasTable.put("ibm-923", "ISO8859_15_FDIS");
aliasTable.put("cp923", "ISO8859_15_FDIS");
aliasTable.put("923", "ISO8859_15_FDIS");
aliasTable.put("latin0", "ISO8859_15_FDIS");
aliasTable.put("latin9", "ISO8859_15_FDIS");
aliasTable.put("csisolatin0", "ISO8859_15_FDIS");
aliasTable.put("csisolatin9", "ISO8859_15_FDIS");

// MIBenum: 106
aliasTable.put("utf-8", "UTF8");

// Alias recommended in RFC 1641
aliasTable.put("unicode-1-1-utf-8", "UTF8");

// MIBenum: 1010
aliasTable.put("unicode-1-1", "UnicodeBigUnmarked");

// MIBenum: 1000
aliasTable.put("iso-10646-ucs-2", "UnicodeBigUnmarked");

// Per Unicode standard
aliasTable.put("utf-16be", "UnicodeBigUnmarked");
aliasTable.put("utf-16le", "UnicodeLittleUnmarked");
aliasTable.put("utf-16", "UTF16");

// Used by drag-and-drop subsystem
aliasTable.put("x-utf-16be", "UnicodeBigUnmarked");
aliasTable.put("x-utf-16le", "UnicodeLittleUnmarked");

aliasTable.put("unicode", "Unicode");

// MIBenum: ????
aliasTable.put("ibm037", "Cp037");
aliasTable.put("ibm-037", "Cp037");
aliasTable.put("cp037", "Cp037");
aliasTable.put("037", "Cp037");

// MIBenum: ????
aliasTable.put("ibm273", "Cp273");
aliasTable.put("ibm-273", "Cp273");
aliasTable.put("cp273", "Cp273");
aliasTable.put("273", "Cp273");

// MIBenum: ????
aliasTable.put("ibm277", "Cp277");
aliasTable.put("ibm-277", "Cp277");
aliasTable.put("cp277", "Cp277");
aliasTable.put("277", "Cp277");

// MIBenum: ????
aliasTable.put("ibm278", "Cp278");
aliasTable.put("ibm-278", "Cp278");
aliasTable.put("cp278", "Cp278");
aliasTable.put("278", "Cp278");

// MIBenum: ????
aliasTable.put("ibm280", "Cp280");
aliasTable.put("ibm-280", "Cp280");
aliasTable.put("cp280", "Cp280");
aliasTable.put("280", "Cp280");

// MIBenum: ????
aliasTable.put("ibm284", "Cp284");
aliasTable.put("ibm-284", "Cp284");
aliasTable.put("cp284", "Cp284");
aliasTable.put("284", "Cp284");

// MIBenum: ????
aliasTable.put("ibm285", "Cp285");
aliasTable.put("ibm-285", "Cp285");
aliasTable.put("cp285", "Cp285");
aliasTable.put("285", "Cp285");

// MIBenum: ????
aliasTable.put("ibm297", "Cp297");
aliasTable.put("ibm-297", "Cp297");
aliasTable.put("cp297", "Cp297");
aliasTable.put("297", "Cp297");

// MIBenum: ????
aliasTable.put("ibm420", "Cp420");
aliasTable.put("ibm-420", "Cp420");
aliasTable.put("cp420", "Cp420");
aliasTable.put("420", "Cp420");

// MIBenum: ????
aliasTable.put("ibm424", "Cp424");
aliasTable.put("ibm-424", "Cp424");
aliasTable.put("cp424", "Cp424");
aliasTable.put("424", "Cp424");

// MIBenum: 2011
aliasTable.put("ibm437", "Cp437");
aliasTable.put("ibm-437", "Cp437");
aliasTable.put("cp437", "Cp437");
aliasTable.put("437", "Cp437");
aliasTable.put("cspc8codepage437", "Cp437");

// MIBenum: ????
aliasTable.put("ibm500", "Cp500");
aliasTable.put("ibm-500", "Cp500");
aliasTable.put("cp500", "Cp500");
aliasTable.put("500", "Cp500");

// MIBenum: ????
aliasTable.put("ibm737", "Cp737");
aliasTable.put("ibm-737", "Cp737");
aliasTable.put("cp737", "Cp737");
aliasTable.put("737", "Cp737");

// MIBenum: ????
aliasTable.put("ibm775", "Cp775");
aliasTable.put("ibm-775", "Cp775");
aliasTable.put("cp775", "Cp775");
aliasTable.put("775", "Cp775");

// MIBenum: ????
aliasTable.put("ibm838", "Cp838"); /* MDA */
aliasTable.put("ibm-838", "Cp838"); /* MDA */
aliasTable.put("cp838", "Cp838"); /* MDA */
aliasTable.put("838", "Cp838"); /* MDA */

// "Cp850"
// MIBenum: 2009
aliasTable.put("ibm850", "Cp850");
aliasTable.put("ibm-850", "Cp850");
aliasTable.put("cp850", "Cp850");
aliasTable.put("850", "Cp850");
aliasTable.put("cspc850multilingual", "Cp850");

// "Cp852"
// MIBenum: 2010
aliasTable.put("ibm852", "Cp852");
aliasTable.put("ibm-852", "Cp852");
aliasTable.put("cp852", "Cp852");
aliasTable.put("852", "Cp852");
aliasTable.put("cspcp852", "Cp852");

// "Cp855"
// MIBenum: 2046
aliasTable.put("ibm855", "Cp855");
aliasTable.put("ibm-855", "Cp855");
aliasTable.put("cp855", "Cp855");
aliasTable.put("855", "Cp855");
aliasTable.put("cspcp855", "Cp855");

// "Cp855"
// MIBenum: ???
aliasTable.put("ibm856", "Cp856");
aliasTable.put("ibm-856", "Cp856");
aliasTable.put("cp856", "Cp856");
aliasTable.put("856", "Cp856");

// "Cp857"
// MIBenum: 2047
aliasTable.put("ibm857", "Cp857");
aliasTable.put("ibm-857", "Cp857");
aliasTable.put("cp857", "Cp857");
aliasTable.put("857", "Cp857");
aliasTable.put("csibm857", "Cp857");

// "Cp860"
// MIBenum: 2048
aliasTable.put("ibm860", "Cp860");
aliasTable.put("ibm-860", "Cp860");
aliasTable.put("cp860", "Cp860");
aliasTable.put("860", "Cp860");
aliasTable.put("csibm860", "Cp860");

// MIBenum: 2049
aliasTable.put("ibm861", "Cp861");
aliasTable.put("ibm-861", "Cp861");
aliasTable.put("cp861", "Cp861");
aliasTable.put("cp-is", "Cp861");
aliasTable.put("861", "Cp861");
aliasTable.put("csibm861", "Cp861");

// MIBenum: 2013
aliasTable.put("ibm862", "Cp862");
aliasTable.put("ibm-862", "Cp862");
aliasTable.put("cp862", "Cp862");
aliasTable.put("862", "Cp862");
aliasTable.put("cspc862latinhebrew", "Cp862");

// MIBenum: 2050
aliasTable.put("ibm863", "Cp863");
aliasTable.put("ibm-863", "Cp863");
aliasTable.put("cp863", "Cp863");
aliasTable.put("863", "Cp863");
aliasTable.put("csibm863", "Cp863");

// MIBenum: 2051
aliasTable.put("ibm864", "Cp864");
aliasTable.put("ibm-864", "Cp864");
aliasTable.put("cp864", "Cp864");
aliasTable.put("csibm864", "Cp864");

// MIBenum: 2052
aliasTable.put("ibm865", "Cp865");
aliasTable.put("ibm-865", "Cp865");
aliasTable.put("cp865", "Cp865");
aliasTable.put("865", "Cp865");
aliasTable.put("csibm865", "Cp865");

// MIBenum: ????
aliasTable.put("ibm866", "Cp866");
aliasTable.put("ibm-866", "Cp866");
aliasTable.put("cp866", "Cp866");
aliasTable.put("866", "Cp866");
aliasTable.put("csibm866", "Cp866");

// MIBenum: ????
aliasTable.put("ibm868", "Cp868");
aliasTable.put("ibm-868", "Cp868");
aliasTable.put("cp868", "Cp868");
aliasTable.put("868", "Cp868");

// MIBenum: 2054
aliasTable.put("ibm869", "Cp869");
aliasTable.put("ibm-869", "Cp869");
aliasTable.put("cp869", "Cp869");
aliasTable.put("869", "Cp869");
aliasTable.put("cp-gr", "Cp869");
aliasTable.put("csibm869", "Cp869");

// MIBenum: ????
aliasTable.put("ibm870", "Cp870");
aliasTable.put("ibm-870", "Cp870");
aliasTable.put("cp870", "Cp870");
aliasTable.put("870", "Cp870");

// MIBenum: ????
aliasTable.put("ibm871", "Cp871");
aliasTable.put("ibm-871", "Cp871");
aliasTable.put("cp871", "Cp871");
aliasTable.put("871", "Cp871");

// MIBenum: ????
aliasTable.put("ibm874", "Cp874");
aliasTable.put("ibm-874", "Cp874");
aliasTable.put("cp874", "Cp874");
aliasTable.put("874", "Cp874");

// MIBenum: ????
aliasTable.put("ibm875", "Cp875");
aliasTable.put("ibm-875", "Cp875");
aliasTable.put("cp875", "Cp875");
aliasTable.put("875", "Cp875");

// MIBenum: ????
aliasTable.put("ibm918", "Cp918");
aliasTable.put("ibm-918", "Cp918");
aliasTable.put("cp918", "Cp918");
aliasTable.put("918", "Cp918");

// MIBenum: ????
aliasTable.put("ibm921", "Cp921");
aliasTable.put("ibm-921", "Cp921");
aliasTable.put("cp921", "Cp921");
aliasTable.put("921", "Cp921");

// MIBenum: ????
aliasTable.put("ibm922", "Cp922");
aliasTable.put("ibm-922", "Cp922");
aliasTable.put("cp922", "Cp922");
aliasTable.put("922", "Cp922");

// MIBenum: ????
aliasTable.put("ibm930", "Cp930"); /* MDA */
aliasTable.put("ibm-930", "Cp930"); /* MDA */
aliasTable.put("cp930", "Cp930"); /* MDA */
aliasTable.put("930", "Cp930"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm933", "Cp933"); /* MDA */
aliasTable.put("ibm-933", "Cp933"); /* MDA */
aliasTable.put("cp933", "Cp933"); /* MDA */
aliasTable.put("933", "Cp933"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm935", "Cp935"); /* MDA */
aliasTable.put("ibm-935", "Cp935"); /* MDA */
aliasTable.put("cp935", "Cp935"); /* MDA */
aliasTable.put("935", "Cp935"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm937", "Cp937"); /* MDA */
aliasTable.put("ibm-937", "Cp937"); /* MDA */
aliasTable.put("cp937", "Cp937"); /* MDA */
aliasTable.put("937", "Cp937"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm939", "Cp939"); /* MDA */
aliasTable.put("ibm-939", "Cp939"); /* MDA */
aliasTable.put("cp939", "Cp939"); /* MDA */
aliasTable.put("939", "Cp939"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm942", "Cp942"); /* MDA */
aliasTable.put("ibm-942", "Cp942"); /* MDA */
aliasTable.put("cp942", "Cp942"); /* MDA */
aliasTable.put("942", "Cp942"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm943", "Cp943"); /* ibm.3158 */
aliasTable.put("ibm-943", "Cp943"); /* ibm.3158 */
aliasTable.put("cp943", "Cp943"); /* ibm.3158 */
aliasTable.put("943", "Cp943"); /* ibm.3158 */

// MIBenum: ????
aliasTable.put("ibm948", "Cp948"); /* MDA */
aliasTable.put("ibm-948", "Cp948"); /* MDA */
aliasTable.put("cp948", "Cp948"); /* MDA */
aliasTable.put("948", "Cp948"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm949", "Cp949"); /* MDA */
aliasTable.put("ibm-949", "Cp949"); /* MDA */
aliasTable.put("cp949", "Cp949"); /* MDA */
aliasTable.put("949", "Cp949"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm950", "Cp950"); /* MDA */
aliasTable.put("ibm-950", "Cp950"); /* MDA */
aliasTable.put("cp950", "Cp950"); /* MDA */
aliasTable.put("950", "Cp950"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm964", "Cp964"); /* MDA */
aliasTable.put("ibm-964", "Cp964"); /* MDA */
aliasTable.put("cp964", "Cp964"); /* MDA */
aliasTable.put("964", "Cp964"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm970", "Cp970"); /* MDA */
aliasTable.put("ibm-970", "Cp970"); /* MDA */
aliasTable.put("cp970", "Cp970"); /* MDA */
aliasTable.put("970", "Cp970"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm1006", "Cp1006");
aliasTable.put("ibm-1006", "Cp1006");
aliasTable.put("cp1006", "Cp1006");
aliasTable.put("1006", "Cp1006");

// MIBenum: ????
aliasTable.put("ibm1025", "Cp1025");
aliasTable.put("ibm-1025", "Cp1025");
aliasTable.put("cp1025", "Cp1025");
aliasTable.put("1025", "Cp1025");

// MIBenum: ????
aliasTable.put("ibm1026", "Cp1026");
aliasTable.put("ibm-1026", "Cp1026");
aliasTable.put("cp1026", "Cp1026");
aliasTable.put("1026", "Cp1026");

// MIBenum: ????
aliasTable.put("ibm1097", "Cp1097");
aliasTable.put("ibm-1097", "Cp1097");
aliasTable.put("cp1097", "Cp1097");
aliasTable.put("1097", "Cp1097");

// MIBenum: ????
aliasTable.put("ibm1098", "Cp1098");
aliasTable.put("ibm-1098", "Cp1098");
aliasTable.put("cp1098", "Cp1098");
aliasTable.put("1098", "Cp1098");

// MIBenum: ????
aliasTable.put("ibm1112", "Cp1112");
aliasTable.put("ibm-1112", "Cp1112");
aliasTable.put("cp1112", "Cp1112");
aliasTable.put("1112", "Cp1112");

// MIBenum: ????
aliasTable.put("ibm1122", "Cp1122");
aliasTable.put("ibm-1122", "Cp1122");
aliasTable.put("cp1122", "Cp1122");
aliasTable.put("1122", "Cp1122");

// MIBenum: ????
aliasTable.put("ibm1123", "Cp1123");
aliasTable.put("ibm-1123", "Cp1123");
aliasTable.put("cp1123", "Cp1123");
aliasTable.put("1123", "Cp1123");

// MIBenum: ????
aliasTable.put("ibm1124", "Cp1124");
aliasTable.put("ibm-1124", "Cp1124");
aliasTable.put("cp1124", "Cp1124");
aliasTable.put("1124", "Cp1124");

// MIBenum: ????
aliasTable.put("ibm1381", "Cp1381"); /* MDA */
aliasTable.put("ibm-1381", "Cp1381"); /* MDA */
aliasTable.put("cp1381", "Cp1381"); /* MDA */
aliasTable.put("1381", "Cp1381"); /* MDA */

// MIBenum: ????
aliasTable.put("ibm1383", "Cp1383"); /* MDA */
aliasTable.put("ibm-1383", "Cp1383"); /* MDA */
aliasTable.put("cp1383", "Cp1383"); /* MDA */
aliasTable.put("1383", "Cp1383"); /* MDA */

// Specialized auto-detection for Japanese charsets
aliasTable.put("jis auto detect", "JISAutoDetect");

// MIBenum: 16/39
aliasTable.put("jis", "ISO2022JP");
aliasTable.put("iso-2022-jp", "ISO2022JP");
aliasTable.put("csiso2022jp", "ISO2022JP");
aliasTable.put("jis_encoding", "ISO2022JP");
aliasTable.put("csjisencoding", "ISO2022JP");

// MIBenum: 17/2024
aliasTable.put("shift_jis", "MS932");
aliasTable.put("ms_kanji", "MS932");
aliasTable.put("csshiftjis", "MS932");
aliasTable.put("windows-31j", "MS932");
aliasTable.put("cswindows31j", "MS932");
aliasTable.put("x-sjis", "MS932");

// JIS-defined Shift JIS
aliasTable.put("\u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe",
"SJIS"); // JIS name
aliasTable.put("pck", "SJIS"); // Solaris PCK

// MIBenum: 18
// Japanese EUC
aliasTable.put("eucjis", "EUC_JP");
aliasTable.put("euc-jp", "EUC_JP");
aliasTable.put("eucjp", "EUC_JP");
aliasTable.put("extended_unix_code_packed_format_for_japanese",
"EUC_JP");
aliasTable.put("cseucpkdfmtjapanese", "EUC_JP");
aliasTable.put("x-euc-jp", "EUC_JP");
aliasTable.put("x-eucjp", "EUC_JP");

// For handing only JIS0202 and JIS0208 in linux
aliasTable.put("euc-jp-linux", "EUC_JP_LINUX");

// MIBenum: 874
aliasTable.put("windows-874", "MS874");

// MIBenum: 2250
aliasTable.put("windows-1250", "Cp1250");

// MIBenum: 2251
aliasTable.put("windows-1251", "Cp1251");

// MIBenum: 2252
aliasTable.put("windows-1252", "Cp1252");

// MIBenum: 2253
aliasTable.put("windows-1253", "Cp1253");

// MIBenum: 2254
aliasTable.put("windows-1254", "Cp1254");

// MIBenum: 2255
aliasTable.put("windows-1255", "Cp1255");

// MIBenum: 2256
aliasTable.put("windows-1256", "Cp1256");

// MIBenum: 2257
aliasTable.put("windows-1257", "Cp1257");

// MIBenum: 2258
aliasTable.put("windows-1258", "Cp1258");

// MIBenum: ????
aliasTable.put("ibm33722", "Cp33722"); /* MDA */
aliasTable.put("ibm-33722", "Cp33722"); /* MDA */
aliasTable.put("cp33722", "Cp33722"); /* MDA */
aliasTable.put("33722", "Cp33722"); /* MDA */

// Russian KOI8-R
aliasTable.put("koi8-r", "KOI8_R");
aliasTable.put("koi8", "KOI8_R");
aliasTable.put("cskoi8r", "KOI8_R");

// Simplified Chinese
aliasTable.put("gb2312", "EUC_CN");
aliasTable.put("gb2312-80", "EUC_CN");
aliasTable.put("gb2312-1980", "EUC_CN");
aliasTable.put("euc-cn", "EUC_CN");
aliasTable.put("euccn", "EUC_CN");

aliasTable.put("big5", "Big5");
aliasTable.put("big5-hkscs", "Big5_HKSCS");
aliasTable.put("big5_hkscs", "Big5_HKSCS");
// Added for future compatibility, explicit mapping to Unicode 2.1
aliasTable.put("big5-hkscs-unicode21", "Big5_HKSCS");

// Traditional Chinese
aliasTable.put("cns11643", "EUC_TW");
aliasTable.put("euc-tw", "EUC_TW");
aliasTable.put("euctw", "EUC_TW");

// Korean
aliasTable.put("ksc5601", "EUC_KR");
aliasTable.put("euc-kr", "EUC_KR");
aliasTable.put("euckr", "EUC_KR");
aliasTable.put("ks_c_5601-1987", "EUC_KR");
aliasTable.put("ksc5601-1987", "EUC_KR");
aliasTable.put("ksc5601_1987", "EUC_KR");
aliasTable.put("ksc_5601", "EUC_KR");
aliasTable.put("5601", "EUC_KR");

aliasTable.put("ksc5601-1992", "Johab");
aliasTable.put("ksc5601_1992", "Johab");
aliasTable.put("ms1361", "Johab");

aliasTable.put("windows-949", "MS949");

// Thai
aliasTable.put("tis620.2533", "TIS620");

// Variants
aliasTable.put("cp942c", "Cp942C");
aliasTable.put("cp943c", "Cp943C");
aliasTable.put("cp949c", "Cp949C");
========== 全エンコーディング名別名一覧 END ==========

Sun認定資格の紹介

Sun認定資格ホームページ

簡単の紹介は下記の通りです。
(Previewのために、Sun-Webからコピーしただけです。)


【SJC-A】Sun認定Javaアソシエイツ試験概要
SJC-A は、開発者を目指す初級 Java技術者の方、及び、Java関連のビジネスに携わる方々を対象とし,Java テクノロジーに関する全般的な基本知識及び、オブジェクト指向の概要と共に、プログラミングの基礎についてテストします。

試験番号  310-019
質問数   51問
合格ライン 68%(51問中35問正解)
質問形式  多岐選択式/ドラッグ&ドロップ
時間    115分
料金    ¥15,000-(税込¥15,750-)
前提条件  特になし
対象者   初級Java技術者、SE、 IT部門・ ITプロジェクトのマネージャ
 主な出題範囲
 例題


【SJC-P】Sun認定 Javaプログラマ 試験概要

Java の包括的な知識から、プログラムの作成まで
他言語での経験はあるが、オブジェクト指向プログラミング言語の経験がなく、アプリケーションを Java に移植ないし、Java を守備範囲に加えたいと思っているプログラマの方向けにプログラミングコンセプト、開発知識とともに Java の文法の知識、基本的なライブラリを使用したプログラミングの作成能力についてなど、Java の包括的な知識についてテストします。

J2SE 5.0バージョン対応資格 提供開始
J2SE 5.0は J2SE 1.4 から機能の大幅な拡張とコードの強化が施され、開発の迅速化、デバッグの簡素化、生産性やパフォーマンスの向上を実現し、安全で透明性の高いアプリケーションの開発を可能とします。J2SE 5.0バージョン対応の Java プログラマ資格では、J2SE 5.0 の新機能を含む Java の包括的な知識を証明します。400万人を超えるといわれる Java 開発者から、自身の能力を差別化するためには、最新の知識について客観的な評価を受けることが重要です。今後の業務アプリケーション開発の基盤となる J2SE 5.0の技術を修得し、その知識の証明を手に入れてください。

Sun Certified Programmer for Java 2 Platform 5.0
SJC-P    5.0
試験番号  310-055
質問数   72問
合格ライン 59%(72問中43問以上)正解
質問形式  多肢選択式/ドラッグ&ドロップ
時間    175 分
料金    ¥24,000-(税込¥25,200-)
前提条件  なし

Sun Certified Programmer for Java 2 Platform 5.0 Upgrade Exam
SJC-P    upgrade for 5.0
試験番号  310-056
質問数   46問
合格ライン 58%(46問中27問以上)正解
質問形式  多肢選択式/ドラッグ&ドロップ
時間    105 分
料金    ¥24,000-(税込¥25,200-)
前提条件  Sun Certified Programmer for Java 2 Platform 合格者

 主な出題範囲
 例題


【SJC-D】Sun認定Javaディベロッパ お申込
SJC-D は Java コンピューティングの基本構造やシンタックスは既に修得済で、実務的なアプリケーション作成へ技術を向上させたいプログラマ向けに実際にアプリケーション作成の複雑なプログラミング課題を行い、次にその課題を実行するために必要な知識について小論文形式でテストします。

本試験は、パート I・パート II 2つのパートから構成されています。
パート I はプログラミング課題です。この課題がDeveloperプログラムの実習部分になります。
パート II では、課題の解決策に関連する 5 から 10 の記述式の問題が出されます。この試験に進むには、課題を完了し、答えがアップロードされていなければなりません。下記のリストから正しい試験番号を選択してください。どの試験を受験すればよいかわからない場合は、こちら よりお問い合せください。

 主な出題範囲
 例題(なし)



【SJC-WC】Sun認定Webコンポーネントディベロッパ 試験概要
サーバーサイドJavaシステム開発の土台を作る
Javaコンピューティングの基礎知識を既に修得している方向けの試験で、システム開発に不可欠なサーブレット、JSPといったプログラミング能力の包括的な知識をテストします。
料金    ¥24,000-(税込¥25,200-)
前提条件  【SJC-P】Sun Certified Programmer for the Java Platform 取得


【SJC-BC】Sun認定ビジネスコンポーネントディベロッパ 試験概要
SJC-BC は近年ますます需要の増加しているオープンなコンピュータシステムにおいて不可欠な要素となる、J2EEベースのアプリケーションサーバで業務アプリケーション開発を行う技術者を主な対象とした認定資格です。EJB(Enterprise JavaBeans)を利用したアプリケーションの設計、開発、テスティング、配備、統合などの技術を習得された方に最適です。EJBの概要および、 Session Bean,Entity Bean,Message-driven Beanといった各種Enterprise Beanとそれに関連するサービスについての知識を問う内容となります。
料金    ¥24,000-(税込¥25,200-)
前提条件  【SJC-P】Sun Certified Programmer for the Java Platform 取得


【SJC-MA】Sun認定モバイルアプリケーションディベロッパ試験概要
SJC-MA は、近年ますます成長を続けている、モバイルのデータサービス用の主要なプラットフォームとして使用されている J2ME テクノロジーを使用して携帯電話や他の Java 対応のデバイスにモバイルアプリケーションを開発しているプログラマのための資格です。SJC-MA を取得することにより JTWI (Java Technology for Wireless Industry)、WMA (Wireless Messaging applicationprogramming interface)、MMAPI(Mobile Media APIs) などの仕様を含むモバイル Java 技術に対しての全般的な知識とプログラミング能力が証明されます。
料金    ¥24,000-(税込¥25,200-)
前提条件  【SJC-P】Sun Certified Programmer for the Java Platform 取得


【SJC-EA】Sun認定エンタープライズアーキテクト 試験概要
SJC-EA はオブジェクト指向概念、レガシー接続、EJB、プロトコル等J2EEを使用したシステムのアーキテクチャに必要とされる知識についてテストします。

关于Java认证

Java认证-中文
gceclub.sun.com.cn/cert_process.html

Java认证-English
www.sun.com/training/certification/java/index.xml

Java認定-日本語
suned.sun.co.jp/JPN/certification/javamain.html


SUN中国技术社区
gceclub.sun.com.cn
西安信息资源网
www.infoxa.com