- PR -

javaのコンパイル

1
投稿者投稿内容
会議室デビュー日: 2005/12/27
投稿数: 13
投稿日時: 2007-09-29 16:52
こんにちは。
javaの初心者です。
以下の環境でjavaコンパイルを行う時、エラーを発生しました。
同じのjavaファイルはWindowsでコンパイルするとき、全然問題なくできました。
なぜ以下の環境でエラーを発生しました?
ご存知の方、ご教授いただければ幸いです。

[環境]
OS:Fedora Core 6
Java:JDK1.5.0_12

----環境変数------------------------------------------------------------
export JAVA_HOME=/usr/local/jdk1.5.0_12
export PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$CLASSPATH:/usr/local/tomcat5.5.23/common/lib/jsp-api.jar:.
------------------------------------------------------------------------


----エラーメッセジー----------------------------------------------
[root@lqb ~]# javac -encoding MS932 /usr/local/test/AAA.java
[root@lqb ~]# javac -encoding MS932 /usr/local/test/Hello.java
/usr/local/test/Hello.java:6: cannot find symbol
symbol : class AAA
location: class test.Hello
AAA inf = new AAA();
^
/usr/local/test/Hello.java:6: cannot find symbol
symbol : class AAA
location: class test.Hello
AAA inf = new AAA();
^
2 errors
-----------------------------------------------------------------

----Hello.java---------------------------------------------------
package test;
public class Hello {
 public static void main (String[] args) {
       
        String check="ありがとう";
        AAA inf = new AAA();
        inf.set(check);
  }
}
----------------------------------------------------------------

---AAA.java-----------------------------------------------------
package test;
public class AAA {
    public void set( String test)
    {
      System.out.println(test);
    }
}
-----------------------------------------------------------------

[ メッセージ編集済み 編集者: 風 編集日時 2007-09-29 17:05 ]
朝日奈ありす
大ベテラン
会議室デビュー日: 2007/05/02
投稿数: 189
お住まい・勤務地: 最北の地
投稿日時: 2007-09-29 18:08
クラスAAAが見つかりません。

たぶん /usr/local ディレクトリに javac クラスパスが設定されてないのが原因。

外れてる可能性は高いですが、書かれてる情報で一番初めに調べるべきはここ。

[ メッセージ編集済み 編集者: 朝日奈ありす 編集日時 2007-09-29 18:09 ]
sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2007-10-01 09:28
引用:

風さんの書き込み (2007-09-29 16:52) より:
[root@lqb ~]# javac -encoding MS932 /usr/local/test/AAA.java
[root@lqb ~]# javac -encoding MS932 /usr/local/test/Hello.java


たぶん、
[root@lqb ~]# cd /usr/local/
[root@lqb ~]# javac -encoding MS932 test/Hello.java
でよいと思います。
Ray
ベテラン
会議室デビュー日: 2007/09/13
投稿数: 88
投稿日時: 2007-10-03 02:44
答えは出ているようですが別解。
CLASSPATHに.があるところから、カレントにクラスファイルを配置したいと考えた場合。
もっとももともとの$CLASSPATHに何が入ってるかわからないので、echo $CLASSPATHしてもらった方がわかりやすいと思いますが。

$ javac -encoding MS932 -d . /usr/local/test/AAA.java
$ javac -encoding MS932 -d . /usr/local/test/Hello.java

または、
コンパイラに同時に入れてコンパイラが知っている状態にするという方法もありますね。(非推奨
$ javac -encoding MS932 /usr/local/test/Hello.java /usr/local/test/AAA.java


// root以外のユーザでやらないと危険かと…。
会議室デビュー日: 2005/12/27
投稿数: 13
投稿日時: 2007-10-03 14:34
皆さん、ご回答ありがとうございます。
皆さんから教えてもらった方法で、問題点を解決しました。
1

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