- PR -

Eclipseでプロファイラを実行において、NoClassDefFoundErrorがでる

1
投稿者投稿内容
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2004-05-05 12:54
Eclipseでプロファイラを実行すると、
NoClassDefFoundErrorがでるのですが、理由がよくわかりません。

Eclipseでプロファイラを実行方法は、下記のURLを参考にしました。
http://www.atmarkit.co.jp/fjava/rensai2/eclipse2_06/eclipse06_1.html

プロファイルを行なうソースは、ZipCode.javaでテストプログラムが
ZipCodeTest.javaです。二つのソースは一番下に御座います。

テストケースのZipCodeTest#main(String[])をJavaアプリケーションとみなし、
[実行]→[次を実行]→[Profiler]を用いて起動すると
java.lang.NoClassDefFoundError: ZipCodeTest
がでます。エラー自体は、ZipCodeTest.javaの

junit.textui.TestRunner.run(ZipCodeTest.class);
の部分ででているかと思われるのですが、
ZipCodeTest.classは存在しているので、エラーがでる理由が
わかりません。ファイルの指定方法が悪いのでしょうか?
どなたかご存知の方がいらっしゃいましたらご教授
お願い致します。

---ZipCode.java-------

import java.io.*;
import java.util.*;

public class ZipCode {
public static ZipCode searchByZip(String zipCodeString)
throws IOException {
ZipCode zipCode = null;
InputStream t_in =
ZipCode.class.getClassLoader().getResourceAsStream("KEN_ALL.CSV");
BufferedReader in = new BufferedReader(new InputStreamReader(t_in));
String line;
while ((line = in.readLine()) != null) {
zipCode = new ZipCode(line);
if (zipCode.郵便番号.equals(zipCodeString)) {
break;
}
}
if (line == null)
zipCode = null; // 見つからなかったらnullを返す
return zipCode;
}
int 全国地方公共団体コード;
String 旧郵便番号;
String 郵便番号;
String 都道府県名カナ;
String 市区町村名カナ;
String 町域名半角カナ;
public String 都道府県名;
public String 市区町村名;
public String 町域名;
boolean 一町域が二以上の郵便番号で表されるか;
boolean 小字毎に番地が起番されているか;
boolean 丁目を有する町域か;
boolean 一つの郵便番号で二以上の町域を表すか;
int 更新の表示;
// 「0」は変更なし、「1」は変更あり、「2」廃止(廃止データのみ使用))
int 変更理由;
// 「0」は変更なし、「1」市政・区政・町政・分区・政令指定都市施行、
// 「2」住居表示の実施、「3」区画整理、「4」郵便区調整、集配局新設、
// 「5」訂正、「6」廃止(廃止データのみ使用))

protected ZipCode(String line) {
super();
try {
StringTokenizer csvDevider = new StringTokenizer(line, ",\"");
if (csvDevider.countTokens() != 15) {
throw new InstantiationError("入力フォーマットが異なります; " + line);
}
this.全国地方公共団体コード = Integer.parseInt(csvDevider.nextToken());
this.旧郵便番号 = csvDevider.nextToken();
this.郵便番号 = csvDevider.nextToken();
this.都道府県名カナ = csvDevider.nextToken();
this.市区町村名カナ = csvDevider.nextToken();
this.町域名半角カナ = csvDevider.nextToken();
this.都道府県名 = csvDevider.nextToken();
this.市区町村名 = csvDevider.nextToken();
this.町域名 = csvDevider.nextToken();
this.一町域が二以上の郵便番号で表されるか = csvDevider.nextToken().equals("1");
this.小字毎に番地が起番されているか = csvDevider.nextToken().equals("1");
this.丁目を有する町域か = csvDevider.nextToken().equals("1");
this.一つの郵便番号で二以上の町域を表すか = csvDevider.nextToken().equals("1");
this.更新の表示 = Integer.parseInt(csvDevider.nextToken());
this.変更理由 = Integer.parseInt(csvDevider.nextToken());
} catch (NumberFormatException ex) {
throw new InstantiationError("入力フォーマットが異なります; " + ex.getMessage());
}
}
}

----ZipCodeTest.java------

import java.io.IOException;

import junit.framework.TestCase;

public class ZipCodeTest extends TestCase {

public void test1040033() {
try {
ZipCode zip = ZipCode.searchByZip("1040033");
assertNotNull(zip);
assertEquals(zip.都道府県名, "東京都");
assertEquals(zip.市区町村名, "中央区");
assertEquals(zip.町域名, "新川");
} catch (IOException ex) {
fail(ex.getMessage());
}
}

public void test1000005() {
try {
ZipCode zip = ZipCode.searchByZip("1000005");
assertNotNull(zip);
assertEquals(zip.都道府県名, "東京都");
assertEquals(zip.市区町村名, "千代田区");
assertEquals(zip.町域名, "丸の内(次のビルを除く)");
} catch (IOException ex) {
fail(ex.getMessage());
}
}

public void test9071801() {
try {
ZipCode zip = ZipCode.searchByZip("9071801");
assertNotNull(zip);
assertEquals(zip.都道府県名, "沖縄県");
assertEquals(zip.市区町村名, "八重山郡与那国町");
assertEquals(zip.町域名, "与那国");
} catch (IOException ex) {
fail(ex.getMessage());
}
}

public static void main(String[] args) {
junit.textui.TestRunner.run(ZipCodeTest.class);
}

public ZipCodeTest(String param) {
super(param);
}
}
banboo
大ベテラン
会議室デビュー日: 2003/12/05
投稿数: 210
投稿日時: 2004-05-05 23:18
自己解決致しました。

Javaのビルドパスの設定をしなおしたり
、いろいろしていたらエラーがでなくなりました。

先程のエラーが再現できなくなってしまったので
再現できたら、原因がどこにあったかご報告致します。
1

スキルアップ/キャリアアップ(JOB@IT)