Javaでバイトコードを実行しようとしたら、こんな文が出ました。

Exception in thread "main" java.lang.NoClassDefFoundError: Test01

実行できないのでWEBで調べてみたところ、以下のような回答がありました。

以下引用文>>
Exception in thread "main"java.lang.NoClassDefFoundError:HelloWorld
というエラーが出て動きません。

[S002-A08]
実行時エラーがでていることから、javaインタープリターは動いています。
HelloWorld という名前のクラスがみつからないというエラーです。

JDK1.2 以降の Java をお使いの場合、、

プロンプト> java -classpath . HelloWorld

でどうでしょう? これでうまくいくならば CLASSPATH環境変数の
設定に . (ドット、ピリオド)がないのが原因です。
CLASSPATH環境変数は、間違い易いことが多い機能ですので完全に理解するまでは使わず、
-classpath 実行時オプションでクラスパス(java VM がクラスファイルを探すパス)を
教えてあげることをお勧めします。

doskey とうてば、Windows95/98 の MS-DOSプロンプトでのコマンド入力も苦にならないでしょう。
>>

以前はこんなことせずともコンパイル、実行できたんですが、何が変わってしまったのでしょうか。PATHの設定は正しく設定しているつもりなのですが…
個人的には毎回実行パラメーターに"-classpath . "と打ち込むのは面倒なので、打ち込まないでも実行できる方法が知りたいと思います。
ちなみにJDKのバージョンは1.3.1_01
OSはWindows2000です。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

excelkingさん、こんにちは。


実は、WEBで調べた結果に答えはあるですんね。

>> これでうまくいくならば CLASSPATH環境変数の
設定に . (ドット、ピリオド)がないのが原因です。
>> CLASSPATH環境変数は、間違い易いことが多い機能ですので完全に理解するまでは使わず、-classpath 実行時オプションでクラスパス(java VM がクラスファイルを探すパス)を教えてあげることをお勧めします。

Javaを実行する場合、コマンド入力時にオプション -classpath があれば続くパスを、なければ環境変数 CLASSPATH で指定したパスをスタートラインにして、クラスファイルを検索します。
# 環境変数CLASSPATHです。PATHではありません。
逆に言うと、環境変数 CLASSPATH に変な値が設定されていると、オプション -classpath が指定されていない場合、JavaVMはクラスファイルが検索できず、エラーを返すわけです(たとえ、カレントディレクトリにあってもです)。
今回のエラーを見る限り、環境変数CLASSPATHはあるんだけど、カレントディレクトリを表す . (ピリオド)が含まれていないためでしょう。
よって、CLASSPATHの内容を確認してみてください。確認は、Win2000なら「コントロールパネル」-「システム」を選択、「詳細」タブを選択、「環境変数」ボタンを押下、画面上部のユーザー環境変数かシステム環境変数のリストに、「CLASSPATH」はありませんか。あれば、ダブルクリックしてください。開いた「システム変数の編集」ダイアログの「変数値」を修正します。すでに設定されている値の前に「.;(ピリオド、セミコロン)」を挿入します。
あとは「OK」を3回押してすべてのダイアログを閉じて、再度実行してみてください。おそらくエラーは回避されるはずです(でなければ、違うエラーに変化)。

ここで、ひとつ疑問。環境変数 CLASSPATH の設定がなく、オプション -classpath が指定されていないときに、実行するとどうなるのでしょう。
実は、JavaVMは、カレントディレクトリからクラスファイルを探そうとします。これが、「以前はこんなことせずともコンパイル、実行できたんですが」の理由だと思います。ところが何かアプリケーションをインストールした拍子に、勝手にCLASSPATHが設定されたのかもしれませんね。

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs …
    • good
    • 0
この回答へのお礼

どうも、QuickTimeのインストール時に、CLASSPATHの変数に値が入っていました。
その値が文字化けした値になっていたので、このような現象が起こった模様です。
CLASSPATHの変数自体を削除すると上手くいきました。
(その後は特に問題は出ていないんですが、大丈夫でしょうか…(笑))
勉強になりました。ありがとうございます。

お礼日時:2001/11/07 12:02

mainメソッドは


public static void main(String arg[]){
}
になっていますか?
public,static,void
どのキーワードが抜けても、同様のエラーが発生したと思います。
    • good
    • 0
この回答へのお礼

なるほど、その辺も抜けていては同じようなエラーが出るのですね。
ソースを確認したところ、その辺の記述に誤りはありませんでした。
ありがとうございました。

お礼日時:2001/11/07 12:05

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q404ERROR の 意味の統一はいつからですか?

こんばんは~! ネットワークのカテゴリーのエキスパートな方々!回答宜しく~^^

質問はタイトルの通りなのですが、『404 ERROR』はいつ頃から共通に利用されてるのですか?
仮に最初に統一した人がいるのなら、使用許諾や使用に当っての利点若しくは、お金が来てるの?

Aベストアンサー

HTTPエラーコード404。
Not Found:要求されたURIに対するマッチする情報が見つからない(RFC1945)
通信規約上の約束です。

RFC(Request For Comment:ご意見お待ちしてます)はインターネット標準案と標準規約を記述したメモで、誰でも参照して利用することが出来ます。

いつから?と問われればRFC1945に制定されたメモが発表された1996年からです。

Q「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」エラー

Oracle9i R2にJDBCで接続してCUSTOMER表のレコード件数を調べる単純なJavaプログラムをつくろうとしています。

以下のソースをOracle端末上で実行すると「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」というエラーメッセージが表示されます。

環境設定としてCLASSPATHにclasses12.zipのパスを通しました。

-------------------------------------------------
// JDBC APIのインポート
import java.sql.*;class CUSTOMER {
public static void main (String args[])
throws SQLException, ClassNotFoundException {

// JDBC Driverの登録
Class.forName("oracle.jdbc.driver.OracleDriver");

// Oracle9iに接続
Connection conn =
DriverManager.getConnection ("jdbc:oracle:thin@192.168.0.10:1521:testdb", "test", "test");

// ステートメントを作成
Statement stmt = conn.createStatement();

// 問い合わせの実行
ResultSet rset = stmt.executeQuery("SELECT COUNT(*) FROM CUSTOMER");

// 問い合わせ結果の表示
while ( rset.next() ) {
// 列番号による指定
System.out.println(rset.getInt(1) + "\t" + rset.getString(2));
}

// 結果セットをクローズ
rset.close();

// ステートメントをクローズ
stmt.close();

// 接続をクローズ
conn.close();
}
}
-------------------------------------------------
何かおわかりの方いらっしゃいましたら教えて下さい。宜しくお願いします。

Oracle9i R2にJDBCで接続してCUSTOMER表のレコード件数を調べる単純なJavaプログラムをつくろうとしています。

以下のソースをOracle端末上で実行すると「Exception in thread "main" java.lang.NoClassDefFoundError: CUSTOMER」というエラーメッセージが表示されます。

環境設定としてCLASSPATHにclasses12.zipのパスを通しました。

-------------------------------------------------
// JDBC APIのインポート
import java.sql.*;class CUSTOMER {
public static void main (String args[])
...続きを読む

Aベストアンサー

thin@ではなくthin:@です。

Q404 Error Not Found と出てしまします

初めてホームページを作ろうとしている者なので、専門用語ではなく、わかりやすく教えて下さいませm(__)m
「HETEMULU」を使って、ホームページを作り、半年かけて、やっと完成しました^^;
そして、無料だと聞いたので、「忍者ホームページ」サイトで、
「NINJA TOOLS」?という所で、IDやパスワードを取得し、なんとか出来たと思ったのですが、

登録されているあなたのURL

とい所をクリックすると、

404 Error Not Found と出てしまします。

何故ですか??

色々触ってみたけど、わかりません^^;

もう一つ質問ですが、無料素材屋さんから、画像をダウンロードして、
「名前をつけて保存」と書いてあったので、例えば「鉢植え」と保存しました。「HETEMULU」で画像の挿入をクリックすると、「鉢植え」の後ろに.gifと付き、問題ないように思っているのですが、日本語で保存しているから、404 Error Not Found と出てしまうのでしょうか?それともそれはまったく関係ないのでしょうか?
慣れていらっしゃる方にはおバカな質問かもしれませんが、どうかどなたか教えて下さい!説明が足りなければ補足しますので、どうかよろしくお願いします!!!

初めてホームページを作ろうとしている者なので、専門用語ではなく、わかりやすく教えて下さいませm(__)m
「HETEMULU」を使って、ホームページを作り、半年かけて、やっと完成しました^^;
そして、無料だと聞いたので、「忍者ホームページ」サイトで、
「NINJA TOOLS」?という所で、IDやパスワードを取得し、なんとか出来たと思ったのですが、

登録されているあなたのURL

とい所をクリックすると、

404 Error Not Found と出てしまします。

何故ですか??

色々触ってみたけど、わか...続きを読む

Aベストアンサー

作成したHTMLファイルをサーバーにアップロード(転送)済みで
しょうか?
トップページは必ず「index.html」または「index.htm」である
必要があります。
「index.htm」にする場合は、元からある「index.html」を削除
(※下記ページ参照)
http://www.ninja.co.jp/faq/a/37/

おすすめのFTPソフト
「FFFTP」
http://www2.biglobe.ne.jp/~sota/

日本語ファイルは表示されない場合もあるので、英数字のファイル名
が推奨されています。
http://www.ninja.co.jp/faq/a/79/

Q Exception in thread "main" java.la

 Exception in thread "main" java.lang.StackOverflowError
というエラーが出ます

 moji()にtestという変数をいれてやり、mainから、書かそうとしていますが、
 Exception in thread "main" java.lang.StackOverflowError
というエラーが出ますが、何故かわかりません。
 宜しくお願いします。

************************************************************
public class ArgsTest2
{
public static void main(String args[])
{
moji();
}

public static void moji()
{
String[] test = {"abcde","fghij"};
main(test);
}
}

Aベストアンサー

ユーザ定義関数(moji)がmain関数を呼ぶことができるのか
分かりませんが、できたとしてもこのコードでは、

main()→moji()→main()→moji()・・・

の無限ループになりますね。

文字を出力するコードもありませんし、
もう一度落ち着いて考え直してみてください。

Q教えて下さい!なぜ【WebApp: Error 404】のページが出る?

JDK + apache + mod_webapp.so + tomcat + PostgreSQLをインストール・設定しました。

JDK     j2sdk-1_3_1_11-linux-i586
apache    apache1.3.31
mod_webapp.so
tomcat    jakarta-tomcat-4.1.30
PostgreSQL    postgresql-7.2.3

(1)
http://localhost:8080/index.jsp
【tomcat】のページが出ます。

(2)
http://localhost/
【あなたの予想に反して、このページが見えているでしょうか?】のページが出ます。

(3)
http://localhost:8080/examples/jsp/index.html
【JSP Samples】のページが出ます。

(4 問題点)
http://localhost/examples/jsp/index.html
【WebApp: Error 404】のページが出ます。
希望 → (3)と同じページが出る。

起動は tomcat → apache の順です。

なぜ【WebApp: Error 404】のページが出るのでしょうか?
教えて下さい。
お願いします。
(初心者なので出来ればわかりやすくお願いします)

JDK + apache + mod_webapp.so + tomcat + PostgreSQLをインストール・設定しました。

JDK     j2sdk-1_3_1_11-linux-i586
apache    apache1.3.31
mod_webapp.so
tomcat    jakarta-tomcat-4.1.30
PostgreSQL    postgresql-7.2.3

(1)
http://localhost:8080/index.jsp
【tomcat】のページが出ます。

(2)
http://localhost/
【あなたの予想に反して、このページが見えているでしょうか?】のページが出ます。

(3)
http://localhost:...続きを読む

Aベストアンサー

設定内容が書いていないので
いかんともあれなんですが。。。(^^;
以下の手順をご確認下さい。

1.mod_webapp.soをapacheのlibexecに配置している。

2.apacheのhttpd.confに以下を記述している。
------------------------------------------------------
LoadModule webapp_module libexec/mod_webapp.so
AddModule mod_webapp.c

<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples
WebAppInfo info
</IfModule>
------------------------------------------------------

3.tomcatのserver.xmlに以下を記述している。
------------------------------------------------------
<Service name="Tomcat-Apache">

<Connector className="org.apache.catalina.connector.warp.WarpConnector"
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps"
acceptCount="10" debug="0"/>

<Engine className="org.apache.catalina.connector.warp.WarpEngine"
name="Apache" debug="0">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="apache_log." suffix=".txt"
timestamp="true"/>

<Realm className="org.apache.catalina.realm.MemoryRealm" />

</Engine>

</Service>
------------------------------------------------------

4.tomcat、apacheの順で再起動

どう?

設定内容が書いていないので
いかんともあれなんですが。。。(^^;
以下の手順をご確認下さい。

1.mod_webapp.soをapacheのlibexecに配置している。

2.apacheのhttpd.confに以下を記述している。
------------------------------------------------------
LoadModule webapp_module libexec/mod_webapp.so
AddModule mod_webapp.c

<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples
WebAppInfo info
</IfModule...続きを読む

QException in thread "main" java.…でも。

Javaの初心者です。
仕事で他の方が作ったプログラムをいじることになりました。
あるclassファイルを実行しようとしたところ、javaコマンドで実行しようとしたところ、タイトルにあるように、Exception in thread "main" java.lang.NoClassDefFoundError:というエラーメッセジーが出ました。
いろいろ調べた結果、「:」以降に出てくる名前のクラスが見つからず、大半の場合は、CLASSPATHの指定がされていなかったり、まちがっていることが分かりました。
ただ、今回、表示されたのは、こんなクラス名なんです。
org/apache/bcel/generic/ATHROW

bcel-5.1.jarというファイルはあるのですが、これをどこかに置いたら解決するものなのでしょうか?
ためしに、実行しようとしたclassファイルと同じディレクトリに置いてましたが、何の効果もありませんでした。

もしお分かりになる方がいらっしゃいましたら、よろしくお願い致します。

Aベストアンサー

CLASSPATHにそのjarファイル(のフルパス)を追加してください。

jarファイルの中には、classファイルが入っています。
通常はCLASSPATHには、classファイルのあるディレクトリを指定しますが、
jarファイルに入っているclassファイルを呼び出したい場合は
jarファイルそのものをCLASSPATHに追加します。

QError!! HTTP status code=404

Error!! HTTP status code=404

いつもお知恵拝借、ありがとうございますm(_ _)m

さて、最近当社で中古XP (prof.)パソコンを2台導入しました。sp3にupしております。

取引先のサイトにアクセスし、IDとpasswordでログインして「取引明細」をダウンロードしようとしましたが、ファイルのアイコンをクリックしたら上記のようなエラーメッセージが出ます。

2台とも同じエラーが出ます。

「教えてgoo」や他のサイトで検索してもなかなか、コレというページが見あたりません。

以前からあるもう一台のXPからはアクセスでき、見ること・プリントすることが出来ます。

アクセスしようとしたファイルは拡張子が".ilf"で、検索の結果どうやら電子帳票のファイルのようです。

このようなトラブルは初体験なので、皆さんのお知恵を是非拝借したいと思います。どうかよろしくお願いいたしますm(_ _)m

Aベストアンサー

ILFのことについてはわかりませんが、単純にHTTP のエラーコード404は、
Not Foundですね。

要するに、指定のページやファイルが見当たらないということ。

先方のシステム内で、指定されたファイルがないということではないですか?
それを先方のWEBサーバーと連携したILFのシステムが応えていると・・・

先方の担当者に聞いた方がいいと思いますが。
特定のシステム内のことですので、担当者以外は本当のことはわかりません。

Qjava.lang.NoClassDefFoundError

こちらの
http://www.hellohiro.com/socket.htm
サーバー(マルチスレッド)とクライアントのプログラムを
Windows環境でサーバーのアドレスを"localhost"にして一台のPC上で実行したところ
うまくいったのですが
今度はサーバー側のプログラムをlinuxサーバーにおいてアドレスを指定して行ったところ
コンパイルは正常に行えて(classファイルは作成されました)、実行するとクライアントからの接続までは
うまくいくのですが
("172.0・・・ から接続がありました"とは表示されます)
その後通信が切れてしまい
Exception in thread "main" java.lang.NoClassDefFoundError:
Connect
という例外が起きてしまいます。
過去ログなどを調べたところクラスの定義が見つからないとのことなのですがソースにはしっかり定義されていると思います
またサーバーのプログラムの実行を
java -classpath . HelloWorldMultiThreadServer
などでも行ってみましたが同じ状況になってしまいます
どなたか是非アドバイスをいただけないでしょうか
よろしくお願い致します

こちらの
http://www.hellohiro.com/socket.htm
サーバー(マルチスレッド)とクライアントのプログラムを
Windows環境でサーバーのアドレスを"localhost"にして一台のPC上で実行したところ
うまくいったのですが
今度はサーバー側のプログラムをlinuxサーバーにおいてアドレスを指定して行ったところ
コンパイルは正常に行えて(classファイルは作成されました)、実行するとクライアントからの接続までは
うまくいくのですが
("172.0・・・ から接続がありました"とは表示されます)
その後通信が切れてし...続きを読む

Aベストアンサー

linux側でjava -versionを叩いて、1.4と出ますよね?

コンパイル時と実行時のJavaバージョンが異なっていたり
しないでしょうか?

私は、下記のようなシェルを作成して問題なく動作してます。
クラスパスも指定無しですので、Java1.4で
JAVA_HOMEの設定があれば大丈夫だと思います。
※JAVA_HOMEの設定が無いとjava.net.*等のライブラリに
パスが通らないかもしれないです。(たぶん。。。)

#!/bin/sh

JAVA_HOME=/opt/java1.4

echo $JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

echo $CLASSPATH

java -version
javac HelloWorldSocketServer.java
java HelloWorldSocketServer


例外のスタックトレースをもっと付けてもらえると
良いのですが・・・
Exception in thread "main" java.lang.NoClassDefFoundError:
Connectの続きを

linux側でjava -versionを叩いて、1.4と出ますよね?

コンパイル時と実行時のJavaバージョンが異なっていたり
しないでしょうか?

私は、下記のようなシェルを作成して問題なく動作してます。
クラスパスも指定無しですので、Java1.4で
JAVA_HOMEの設定があれば大丈夫だと思います。
※JAVA_HOMEの設定が無いとjava.net.*等のライブラリに
パスが通らないかもしれないです。(たぶん。。。)

#!/bin/sh

JAVA_HOME=/opt/java1.4

echo $JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH

echo $CLASS...続きを読む

QHTTP 404 error

Vine Linux,Tomcat5で
(1)webapps/conf/server.xml
...
<HOST>
<Context path="/apress" docBase="apress" debug="0" reloadable="true" />
...
(2)webbapps/apress/login.jsp
...
<table width="500" border="0" cellspacing="0" cellpadding="0">
<form name="loginForm" method="post" action="servlet/chapter2.login">
<tr><td width="402"><div align="right">User Name: </div></td>
<td width="399"><input type="text" name="username"></td>
</tr>
...
(3)webapps/apress/WEB-INF/web.xml
...
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>chapter2.login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
...
(4)webapps/apress/WEB-INF/classes/chapter2/login.java
package chapter2;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class login extends HttpServlet {
private String target = "/welcome.jsp";
private String getUser(String username, String password) {
// Just return a statice name
// If this was reality, we would perform a SQL lookup
return "Bob";
}
....
(4)現象:
http://xxx.xxx.xxx.xxxx:8080/apress/login.jsp
でsubmit action 後、次のエラーが出てきました:
HTTP 404 error,
The requested resource (/apress/servlet/chapter2.login) is not available.

この問題はどこにあるでしょうか教えてください。

Vine Linux,Tomcat5で
(1)webapps/conf/server.xml
...
<HOST>
<Context path="/apress" docBase="apress" debug="0" reloadable="true" />
...
(2)webbapps/apress/login.jsp
...
<table width="500" border="0" cellspacing="0" cellpadding="0">
<form name="loginForm" method="post" action="servlet/chapter2.login">
<tr><td width="402"><div align="right">User Name: </div></td>
<td width="399"><input type="text" name="username"></td>
</tr>
...
(3)webapps/apress/WEB-INF/web....続きを読む

Aベストアンサー

パスの指定が間違ってるからだと思いますが。

/apress/servlet/chapter2.login

このパスにちゃんと存在してますか?

Qjava.lang.NoClassDefFoundErrorというエラーが出ます

ご質問させて頂きます。

自分のPC(XP)からTelnetで
LINUX(Red Hat Linux release 9 (Shrike))に接続しています。

サンプルを参考にして以下のコードを作ってみました。
これは、PostgreSQLで作成したデータベース(aa)の
テーブル(test)のデータを表示させようとしています。

import java.sql.*;

public class sample1{
 public static void main(String [] args){
  String driver = "org.postgresql.Driver";
  String url = "jdbc:postgresql://192.178.215.230/home/postgres/data/aa";
  try{
    Class.forName(driver);
    Connection con = DriverManager.getConnection(url,"postgres","aaaa");
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("SELECT * FROM test"); 
    System.out.println("shainno shimei ");
    while ( rs.next() ){ 
      System.out.println(" "+rs.getInt("shainno")+" "+ rs.getString("shimei"));
    }
    rs.close(); 
    st.close(); 
    con.close();  
  }catch (SQLException sqlEx){
    System.out.println("SQLERROR: " + sqlEx.toString());
  }catch (Exception ex){
    ex.printStackTrace();
  }
 }
}

これを実行すると、
[postgres@localhost postgres]$ java sample1
以下のようなエラーが出てします。
Exception in thread "main" java.lang.NoClassDefFoundError: sample1

ご教授して頂けたら幸いです。

ご質問させて頂きます。

自分のPC(XP)からTelnetで
LINUX(Red Hat Linux release 9 (Shrike))に接続しています。

サンプルを参考にして以下のコードを作ってみました。
これは、PostgreSQLで作成したデータベース(aa)の
テーブル(test)のデータを表示させようとしています。

import java.sql.*;

public class sample1{
 public static void main(String [] args){
  String driver = "org.postgresql.Driver";
  String url = "jdbc:postgresql://192...続きを読む

Aベストアンサー

ふたたび,#1です.

> 何度も厚かましいお願いで
> 大変に恐縮ですが
> ご教授して頂けたら幸いです。

いえいえ.
もうすぐできますよ.頑張りましょう.

PostgreSQLのODBCドライバをCLASSPATHに含めていますか?

postgresql.jarとかpg72jdbc2.jarといったファイルがどこかにあるはずです.
Linuxでの書式はわかりませんので,他の方にお願いするとして...汗

Windowsでは以下のようになります.
CLASSPATH=.;C:\dir\postgresql.jar;c:\...


人気Q&Aランキング

おすすめ情報