
cygwinでjavaを実行するとエラーになるのですが、
解決策を教えていただけないでしょうか。
こんな所で数時間も考えてしまっており、作業が滞っています。
どなたか教えていただけないでしょうか。よろしくお願い致します。
cygwin上でenvを実行した時の結果です。(一部抜粋)
JAVA_HOME=/cygdrive/c/Program Files/Java/jdk1.6.0_31
CLASSPATHも設定していたのですが、HelloWorld位だったら必要ないかと思い、unsetしました。
cygwinでプロジェクト直下に移動して、
コマンド「java HelloWorld」を実行すると以下のエラーとなる。
=============================================================================
$ java HelloWorld
java.lang.NoClassDefFoundError: HelloWorld
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: HelloWorld. Program will exit.
Exception in thread "main"
=============================================================================
因みに、ソースは以下です。
[HelloWorld.java]
package co.jp.test;
public class HelloWorld {
public static void main(String args[]){
System.out.println("HelloWorld");
}
}
また、ソースをパッケージから取り出して(パッケージを削除)、
プロジェクト直下にコピーして実行するとうまくいきます。
明らかに、パッケージにあるファイルをjavaコマンドで実行する時の固有のエラーかと思うのですが、
パッケージに含まれるファイルをcygwinで実行する時に気をつけることはありますでしょうか?
因みに、ソースは以下です。
[HelloWorld.java]
public class HelloWorld {
public static void main(String args[]){
System.out.println("HelloWorld");
}
}
No.7ベストアンサー
- 回答日時:
java -cp bin co.jp.test.HelloWorld
でどうでしょうか。
この回答への補足
ありがとうございます。
うまくいきました。
根本原因がわかった気がします。
やはりclasspathですね。
それにしても、eclipseでの動作確認方法と、
cygwinでの動作確認する時の方法が異なって、手間を感じます。
(毎回、cygwin上のディレクトリにコピーしてきて、java実行)
なにかうまいやり方はないでしょうかね。。。
また、ライブラリのCLASSPATHの設定方法でうまい方法があれば、
ご教授いただきたく。よろしくお願い致します。
No.4
- 回答日時:
その HelloWorld.java とか HelloWorld.class はどのディレクトリにありますか?
find . -name HelloWorld.class
の結果はどうなります?
この回答への補足
$ find . -name HelloWorld.class
./bin/co/jp/test/HelloWorld.class
./src/co/jp/test/HelloWorld.class
となります。
それぞれ直接HelloWorld.classファイルがあるディレクトリに移動して、
javaを実行してもエラーになります。
No.2
- 回答日時:
そのファイルがあるディレクトリまで移動「せず」に, パッケージを指定して
java co.jp.test.HelloWorld
としたら実行できない?
でも, co.jp.test ってパッケージ名はなんか変だなぁ.
この回答への補足
駄目みたいです。。。
同じエラーになりました。
$ java co.jp.test.HelloWorld
java.lang.NoClassDefFoundError: co/jp/test/HelloWorld
Caused by: java.lang.ClassNotFoundException: co.jp.test.HelloWorld
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: co.jp.test.HelloWorld. Program will exit.
Exception in thread "main"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
論理回路設計をVerilogで行う問...
-
jdbcでinsert,delete,createをe...
-
マイクラでPythonのプログラミ...
-
配列にnullを代入すると、null...
-
Processingでマウスクリックで...
-
「main メソッドを持つクラスが...
-
スプレッドシートからリマイン...
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
Verilogについて質問です。この...
-
ゲーム開発の入門書を探しています
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
-
JAの支部?地域の農協のカード...
-
えハミルトン路と全域木のちが...
-
CSV出力を画面から選択したデー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列にnullを代入すると、null...
-
マイクラでPythonのプログラミ...
-
正規表現について質問です。 カ...
-
プログラミングの問題です。大...
-
「main メソッドを持つクラスが...
-
Eclipse 動的プロジェクトで404...
-
jdbcでinsert,delete,createをe...
-
jdk17.06のインストーラーが起...
-
eclipseで作ったプログラムを他...
-
googleスプレッドシートのGASに...
-
直し方について教えて頂きたい...
-
自作Androidアプリのデータ引き...
-
JaneStyleのスレッドが見れなく...
-
プログラムの単体テストで金額...
-
下記のリストならno002が含まれ...
-
複数TBLのオブジェクトを1つの...
-
問題作成のWebアプリの作り方を...
-
CSV出力を画面から選択したデー...
-
デバッグツールの具体例を教え...
-
EclipseとVisual StudioをPC1台...
おすすめ情報