• ベストアンサー

javaがへん2

2) problem.javaとtest2.javaが同じディレクトリにあるとします。 problem.javaは以下のないようです public class problem { String[] hoge; private String prob; public problem() { super(); prob = new String("new"); hoge = new String[N]; hoge[0] = "大人4人と子供2人の料金は560円です。大人3人と子供3人" + "の料金は540円です. では大人(X)と子供(Y)の料金は" + "それぞれいくらですか. XとYを用いて方程式を立てなさい"; hoge[1] = "大人5人と子供2人の料金は600円です。大人3人と子供1人の料金は350" + "円です. では大人(X)と子供(Y)の料金はそれぞれいくらですか. XとYを用いて" + "方程式を立てなさい"; } String get_prob(int n){ prob = hoge[n]; return prob; } } test2.javaが以下のないようです class test2{ public static void main(String args[]){ problem pr = new problem(); System.outprintln(pr.get_prob(0)); } } コンパイルすると以下のエラーがでます。 test2.java:3: シンボルを見つけられません。 シンボル: クラス problem 場所 : test2 の クラス problem pr = new problem(); ^ test2.java:3: シンボルを見つけられません。 シンボル: クラス problem 場所 : test2 の クラス problem pr = new problem(); ^ エラー 2 個 ふたつのファイルは同じディレクトリにあります。コンパイルがとおらないのもjavaの不調なのかな?と思ってしまいますが原因が分かりません。誰か助けてください。ちなみに、違うパソコンでtest2.javaとproblem.javaをコンパイルして実行は可能です。

  • Java
  • 回答数4
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yuchi-co
  • ベストアンサー率60% (29/48)
回答No.4

CLASSPATHの問題のように思います。 CLASSPATHをひとつも定義していない状態であれば自動的にカレントディレクトリ(実行してるディレクトリ)を検索します。 しかし。CLASSPATHをひとつでも定義すると実行時(コンパイル時)に必要なクラスをCLASSPATHに設定されている場所しか探さなくなり、メインが見つからないやシンボルが見つからない等のエラーが起きます。 CLASSPATHの内容を確認してください。 CLASSPATHが定義されているようであれば、カレントディレクトリ「.」が入っているか確認しましょう。 入っていなければ「.」を追加しましょう。 例)「もともと入ってるクラスパス;.」 「;」は複数のパスを指定する際の区切り文字です。 http://oshiete1.goo.ne.jp/qa2556912.htmlの質問も同じ原因だと思います。

da_rk2000
質問者

補足

本当だ!!!直った直ったよ!!! まじで感動したぜ!!これからはエクリプスでやっていこうとしていたがコマンドプロンプトでもできるようになたぜ!! すげーーーよすげーーよお~~心の友よ!!! お礼に俺の歌を二人にプレゼントだ お~れ~はジャイアン!!が~~き大将!!! 天下む~~てき~~のお~~とこだぜ~~~ ありがとう!!!!!!!!!!

その他の回答 (3)

  • yuyanan
  • ベストアンサー率15% (2/13)
回答No.3

まだANo.1です。 補足がある。「set CLASSPATH=絶対PATH(例:D:\j2sdk1.5.0_06\bin)」に設定する絶対PATHはXXX.classがあるPATHです。 例えば:D:\sotu3にtest2.javaとproblem.javaがあります。コンパイルしたtest2.classとproblem.classもこのディレクトリにあります。 このコマンドは「set CLASSPATH=D:\sotu3」になります。 もっといい方法は: マイ パソコン -> 右鍵 -> プロパティ -> 詳細設定 -> 環境変数 -> 変数CLASSPATHにそのディレクトリを追加する(変数CLASSPATHがなかったら、新規してください。)

  • yuyanan
  • ベストアンサー率15% (2/13)
回答No.2

ANo.1です。 すみません、テストしないで回答しました。 たった今私のパソコンでテストをして、本当に原因を見ました。 CLASSPATHの問題です。 コマンドプロンプトでやる前に、「set CLASSPATH=絶対PATH(例:D:\j2sdk1.5.0_06\bin)」をrunする。コンパイルが通れると思います。 PS:日本語が下手ですから、そんなたくさんの文がたぶん分かりません。 ^^;)

  • yuyanan
  • ベストアンサー率15% (2/13)
回答No.1

この二つファイルは同じdirectoryにある場合、ファイルの中でpackageの声明は必要です。 二つファイルともtopに「package フォルダ名」を追加します。 それでtest2.javaの中でproblemクラスを使用することがでると思います。

da_rk2000
質問者

お礼

パッケージ宣言をつけなくても僕のパソコンではコマンドプロンプト上でもエクリプス上でも問題なくコンパイル実行ができます。 友人のものはだめです。こんなことがあるのでしょうか? あれ?いま僕のパソコン上にパッケージ名 package sotu3; (sotu3のディレクトリにあります) をtest2.javaとproblem.javaに付け加えました。すると 今度は僕の方に同じエラーがでてきました。不思議です。 あとすいませんtest2.javaとproblem.javaはこぴぺするときにみすってまいした。いかが正しいです problem.java public class problem { String[] hoge; int N=2; private String prob; public problem() { super(); prob = new String("new"); hoge = new String[N]; hoge[0] = "大人4人と子供2人の料金は560円です。大人3人と子供3人" + "の料金は540円です. では大人(X)と子供(Y)の料金は" + "それぞれいくらですか. XとYを用いて方程式を立てなさい"; hoge[1] = "大人5人と子供2人の料金は600円です。大人3人と子供1人の料金は350" + "円です. では大人(X)と子供(Y)の料金はそれぞれいくらですか. XとYを用いて" + "方程式を立てなさい"; } String get_prob(int n){ prob = hoge[n]; return prob; } } test2.java class test2{ public static void main(String args[]){ problem pr = new problem(); System.out.println(pr.get_prob(0)); } }

da_rk2000
質問者

補足

あれ?そうでしたっけ?そうですか?うそ~ 前にはそんなことしなくても大丈夫でしたよ。 僕はeclipseで作って、それを友人のパソコンでコマンドプロンプトでやったらこういうエラーがでてコンパイルが通らないってことになりました。 で、僕の方もコマンドプロンプトでやったら特にコンパイルエラーがでないんです。そもそもpackageガ必要ならeclipseのほうも必要と警告とかをだすんじゃないでしょうか?

関連するQ&A

  • java コンパイルエラー

    java コンパイルエラー java 初心者です。 簡単なプログラムを作りながら練習していたのですが、Exceptionクラスを継承して新しい例外を作る以下のプログラムで、コンパイルエラーとなり、解決できません。 class NewException extends Exception{ public NewException(){ super("エラー"); } } これを javac でコンパイルすると、 NewException.java:3: シンボルを見つけられません。 シンボル: コンストラクタ Exception(java.lang.String) 場所  : Exception の クラス super("エラー"); ^ エラー1個 と言われます。 これを読むと「Exception には String を引数にとるコンストラクタはないよ」と言われているように思えるのですが、そんなはずないのでは。。 もし原因がお分かりの方がいらしたら、ご教示いただけるとありがたいです。

    • ベストアンサー
    • Java
  • コンストラクタを使用したJavaのコンパイルがうまくいかない

    質問内容は、タイトル通りなのですが、 まず、元になるコンストラクタを使用したクラスのソースを以下に書きます。 class test1{ test1(){ System.out.println("コンストラクタ完了"); } } これをtest1.javaという形でコンパイルも終了し、 次に以下のようなソースを書いたstt1.javaを作りました。 class stt1{ public static void main(String[] args){ test1 t0; t0 = new test1(); } } これをコンパイルしようとしたのですが、 シンボルが見つけられないというエラーが出てしまいました。 シンボル:クラス test1 場所:stt1のクラス と出ていました。 現状として、解決方法をネットなどで調べたのですが問題がどこにあるのか分からない状態です。 どなたか詳しい方がいましたら教えていただけると幸いです。

  • java作成時のエラー

    javaの勉強を始めたばかりの初心者です。 教えていただけると嬉しいです。 前回の質問の内容が説明不足でしたので出し直しました。 よろしくお願いします。 (1)class Test で問題なくコンパイル出来たのですが、 その後HTMLファイルを開いても、アプレットは表示されず真っ黒な画面が出るだけでした。 何が原因なのでしょうか。宜しくお願い致します。 ------------------ import java.awt.*; import java.awt.event.*; public class Test extends Frame { public Test() { super(); setTitle("Hello"); setSize(200,100); setLayout(null); Button mybutton = new Button("OK"); mybutton.setBounds(100,100,100,25); this.add(mybutton); mybutton.addActionListener(new ClickAction()); } public static void main (String args []) { new Test(); } } class ClickAction implements ActionListener { public void actionPerformed(ActionEvent ev){ System.exit(0); } } -------------- <HTML> <BODY> <APPLET WIDTH="500" HEIGHT="500" CODE="Test.class"> </APPLET> </BODY> </HTML> -------------- (2)IntegerTextField1のコンパイルは成功したのですが、その後Anwendung1のコンパイル時に、 下記エラーが出てしまいます。どちらも同じフォルダに入っています。 何が原因なのでしょうか。。どうぞ宜しくお願い致します。 C:\java\a>javac Anwendung1.java Anwendung1.java:32: cannot find symbol symbol : class IntegerTextField1 location: class Anwendung1 IntegerTextField1 tf1 = new IntegerTextField1 (); ^ Anwendung1.java:32: cannot find symbol symbol : class IntegerTextField1 location: class Anwendung1 IntegerTextField1 tf1 = new IntegerTextField1 (); ^ 2 errors --------------- import java.io.*; import java.awt.*; import java.awt.event.*; class IntegerTextField1 extends TextField implements Serializable { public IntegerTextField1 () {

  • JAVAコンパイルができない。

    以下のサンプルプログラムをコンパイルすると シンボルを見つけられません。 と出ます。 場所は:java.lang.Stringの クラス     if(line.isEmpty()) のlineとisEmpty()の間のコロンに「^」がついています。 javaのバージョンは「1.7.0_05」です。 PCのOSはXP Pro(SP2)です。 原因がわかる方教えてください。 import java.util.Scanner; public class test_20120707 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int total = 0; while (true) { System.out.println("現在までの合計は " + total + " です。"); System.out.print("整数を入力: "); String line = scanner.nextLine(); if (line.isEmpty()) { break; } int value = Integer.valueOf(line); total += value; } } }

  • Javaのクラス作成について。

    現在、Javaで新規クラスを作成しています。 「String型の変数を受け取ってトリミングしてString型で返す」と言うプログラムを作成したいのですが、なかなかうまくいきません。 現在、考えているのは --- Trimming.java --- public class Trimming{ String new_id; public String TrimmingId(String id){ id = new_id; String idtrim = new_id.trim(); idtrim = id; return id; } } --- Test.java --- class Test{ public static void main(String[] args) { String id = " Trimming "; Trimming ID = new Trimming(); System.out.println(ID.TrimmingId(id)); } } --- 現在、出ているエラーは Exception in thread "main" java.lang.NullPointerException at Trimming.TrimmingId(Trimming.java:6) at Test2.main(Test2.java:6) です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • javaのsetColor、setBackgroundについて

    プログラミング初心者で、困っています。教えてください。Javaで g.setColor(Color.red); というサンプルに良くあるコードをコンパイルしてもエラーになってしまいます。 import java.applet.Applet; import java.awt.Graphics; public class First2 extends Applet{ public void init() { setBackground(Color.yellow); } } をコンパイルすると C:\myJ\test1>javac First2.java .\Color.java:7: ')' がありません。 g.setColor(Color red); ^ First2.java:6: シンボルを見つけられません。 シンボル: 変数 yellow 場所 : Color の クラス setBackground(Color.yellow); ^ .\Color.java:6: java.awt.Graphics は abstract です。インスタンスを生成することは できません。 Graphics g = new Graphics(); ^ .\Color.java:7: シンボルを見つけられません。 シンボル: 変数 Color 場所 : Color の クラス g.setColor(Color red); ^ エラー 4 個 となってしまうんです。 ネット上のいろんなサイトでは問題なく動作するように 書かれていますが、なぜエラーになるんでしょう? どうしたら解決できますか?ご指南下さい。 ちなみにjavaのversion は 1.6 です。

    • ベストアンサー
    • Java
  • 【初心者】javaコンパイルエラー scp.put

    自動的にファイルがアップロードされる機能をjavaで作りたいと思っています。 いろいろ調べながら書いたのですが、 コンパイルエラーになってしまい、どこがおかしいのか分かりません。 下にあるようなソースを書いていているのですが、 以下のようなコンパイルエラーになってしまいます。 ご教授いただけると幸いです。 ----- シンボルを見つけられません。 シンボル:クラス Connection 場所  :ScpTestのクラス ----- import java.io.IOException; import ch.ethz.ssh2.*; public class ScpTest { private static final String hostname = "***.***.***.***(ホスト名)"; private static final String userid = "ユーザー名"; private static final String password = "パスワード"; public static void main(String[] arg) { try { ScpTest test = new ScpTest(); test.doProc(); } catch (IOException ex) {ex.printStackTrace();} } public void doProc() throws IOException { // connect & login Connection conn = new Connection(hostname); ConnectionInfo info = conn.connect(); boolean result = conn.authenticateWithPassword(userid, password); if (result) { // scp SCPClient scp = conn.createSCPClient(); scp.put("ローカルフォルダのファイルパス", "リモート側のファイルパス"); } conn.close(); } }

    • ベストアンサー
    • Java
  • java作成時のエラー

    javaの勉強を始めたばかりの初心者です。 エラーばかりでるのですがどうすればよいかわかりやすく教えていただけると嬉しいです。 よろしくお願いします。 1つ目: Test ・・・ コンパイルOKでしたが. HTML→アプレット表示されません。。 <HTML> <BODY> <APPLET WIDTH="500" HEIGHT="500" CODE="Test.class"> </APPLET> </BODY> </HTML> ~☆ 2つ目: IntegerTextField1 はOKでしたが javac Anwendung1.java でエラー 二つは同じフォルダに入っています。 C:\java\a>javac Anwendung1.java Anwendung1.java:32: cannot find symbol symbol : class IntegerTextField1 location: class Anwendung1 IntegerTextField1 tf1 = new IntegerTextField1 (); ^ Anwendung1.java:32: cannot find symbol symbol : class IntegerTextField1 location: class Anwendung1 IntegerTextField1 tf1 = new IntegerTextField1 (); ^ 2 errors どうぞよろしくお願いしますm(_ _)m

    • ベストアンサー
    • Java
  • Java オブジェクトのコピーについて

    Java オブジェクトのコピーについて 現在、Javaの勉強を行っているのですが、 オブジェクトのコピーについてどうしてもわからない部分があります。 以下についてご教授お願いいたします。 ----------------------------- (型定義) public class TypeAB{   List<String[]> ab = new ArrayList<String[]>;   public List<String[]> getAb(){     return ab;   }   public setAb(List<String[]> ab){     this.ab = ab;   } } ------------------------------ public class mst{   private void function(){     TypeAB hoge1 = new TypeAB();     TypeAB hoge2 = new TypeAB();     List<String[]> ab = new ArrayList<String[]>;     String[] a = {"1","2","3"};     String[] b = {"4","5","6"};     ab.add(a);     ab.add(b);     hoge1.setAb(ab);     hoge2.setAb(ab);   } } ------------------------------ 上記処理についてなのですが、 現在のままでは、最終的な[hoge][hoge1]には 変数[a][b]のメモリ上のアドレスが格納されているだけで、 hoge1.ab.get(0).a = {"4","5","6"}とした場合に、 hoge2の変数[a]の値まで変わってしまいます。 これをどうにかして最終的な、 hoge1.setAb(ab); hoge2.setAb(ab); の部分で別アドレスでコピーしたいのです。 言語:Java フレームワーク:SAStrutsです。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • コンパイルができません…

    プログラムは以下のようになってます。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TEST extends InternalFrame implements ActionListener{    ---- 中略 ---- JPanel p = new JPanel(); p.setLayout(new GridLayout(x,y));    ---- 後略 ---- } コンパイルすると、次のようなエラーが出力されます。 シンボルを解決できません。 クラス GridLayout p.setLayout(new GridLayout(x,y));            ^ コンパイルができない理由が分かる方居られましたら、 ご教授願いたく存じます。 できれば、早急にお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう