□技術メモ - Eclipseによる開発における注意点、対策、メモ書きなど ※管理人の個人的な技術メモです。このページの内容の実行結果について 管理人はいかなる責任も負いかねますのでご自身の責任でお試しください。 ----------------------------------------------------------- 〇SVNのプロジェクトを開く ・新規→その他→SVN→SVNからプロジェクト→SVNのURLを入力→SVNのプロジェクトがインポートされる。 -------- 〇ライブラリが参照できずに、赤×が表示されている場合 ・プロジェクトを右クリック→プロパティ→ビルドパス→ライブラリ →外部Jarの追加→エラーが消える ・必要なJarがどこにあるか事前に確認しておくこと。 -------- 〇クラス.java のimportの指定がエラーになっている ・Jarの中は、co.jp… などから始まる階層構造になっているので、 zipの解凍可能なアプリケーションでjarファイルの構造を確認しておくとよい。 -------- 〇Java.lang.Objectのクラスファイルが見つかりません ・JREの設定が不完全な場合は、main() を記述しただけで上記のメッセージが表示される。 ・JREを正しく設定すればよい。 ・プロジェクトを右クリック→プロパティ→ビルドパス→ビルドパスの構成→ライブラリの追加 →JREシステムライブラリ→JREを選択する -------- 〇古いプロジェクトをインポートして、jarなどを追加したが、エラーが消えない ・まずはJREとライブラリを正しく設定すること。 ・それで消えなければプロジェクトは古いJREの環境で作られた可能性がある。 ・上記の仮定が正しい場合は、古いJREをインストールしてこれをコンパイル時のJREとして設定すると エラーが消えることがある。 -------- 〇サーブレットの設定ファイルの置き場 ・web.xmlや、struts-config.xml などは、/WEB-INF の直下に置く。 ・ServletContext.getRealPath("WEB-INF/web.xml"); で絶対パスを取得できる。 ・log4j.properties などは、/WEB-INF/classes に置く。 ・以下、プロパティファイルの読み込みの例 FileInputStream fis = new FileInputStream("./test.properties"); Properties prop = new Properties(); prop.load(fis); fis.close(); String strValue = prop.getProperty("KEY"); //KEYを指定すれば各値を取得できる -------- 〇Eclipseでクラス名を変更してしまった 〇Class Not Found Exception が発生する 〇Java VM が、main が見つからないというメッセージを表示する ・まず基本事項として、クラスを作成する際は、クラス名と .java ファイル名を一致させる必要がある。 ・Eclipseで手動でクラス名を変更する等して、クラスパスやクラス名に関する不具合が発生すると、Class Not Found Exception が発生する。 ・また、Hello, World などの簡単なサンプルも、Java VMがmainが見つからないというメッセージを表示してデバッグ実行できなくなる。 ・上記のような現象が発生するのは、一時的に .class ファイルが消えているため。 .class ファイルを復活させるにはコンパイルを通す必要がある。 1つでもコンパイルエラーがあると .class は復元しない。 ・リフレッシュ→クリアビルドして、エラーのある個所を修正していくと .class が復元されて、デバッグ実行できるようになる。 ・そもそも、手動でクラス名を変更してはならない。なんらかの都合でクラス名を変更する場合は、リファクタリングのクラス名変更で行う。 変更後に、svnなどにソースの変更履歴が残るかどうかについては未確認。 ・そもそもクラス名を直接変更するのは避けた方がよい。新しいクラスを作成して、必要な個所のソースを貼り付ける等の 安全な方法で行うように気を付けること。 -------- 〇VM引数について ・プロジェクトを選択して右クリックから実行を選択する際に、実行時の設定が可能。 この際にVM引数を設定できる。 ・OutOfMemoryはヒープサイズの変更、StackOverFlowが発生した場合はスタック領域を増やす必要がある。 ・以下は設定の例。スペースは開けなくてもよい。 -Xms 256m //ヒープ領域の最小値 -Xms 1024m //ヒープ領域の最大値 -Xss 512k //スタック領域 -------- 〇便利なショートカットおよびアイコン ・沢山あるはずだが特に気になったものについて記載 ・Ctrl + Shift + R リソース検索。Javaファイル名などを入力すると該当するファイルの一覧が表示される。 ・「←→」を縦に並べたアイコン 現在表示中のソースからTreeペインへ移動できる。 -------- 〇asserion関連 ・assert文の用法は以下の通り。 ・AssertionErrorの親クラスはErrorであり、ErrorはThrowableなので、つまりエラーがスローされる。 assert (条件); // trueの場合はこのコードは無視される。falseならAssertionErrorが送出される。 assert (条件) : メッセージ式; // falseの場合はメッセージが表示される。 ・その他のassertメソッド assertEquals(期待値, 実際値); // double、float以外の基本データ型およびオブジェクトの場合。型は同じにする必要がある。 assertEquals(メッセージ式, 期待値, 実際値); // 違う場合はメッセージ表示する。 assertNotNull(object); // Not Null の判定 assertNotNull(str, object); assertNull(object); // Null の判定 assertNull(str, object); assrtSame(obj1, obj2); // 同じObjectを参照していることの判定 assrtSame(str, obj1, obj2); assertTrue(bln条件); // 条件が真であることの判定 assertTrue(str, bln条件); --------