• ベストアンサー

コンパイルができません

Java超初心者です。 プログラムによってコンパイルできるものと、できないものがあって困っています。 できない場合のエラーメッセージは「○○(クラス名)を読み込めません」と出ます。 そのプログラムは、本に掲載されているものを丸写ししたものです。 プログラム自体が間違っていない証拠に、同じ内容のものをクラス名を変えて試してみて、成功と失敗が出ました。 クラス名や、保存したファイル名が間違っているとも思えないんですが。 もう一つなんですが、"System.out.println・・・"に対してエラーが出るんです。 入力・保存はきちんとできているはずなのに、コマンドプロンプト上では「Systemou」として認識され、エラーになってしまうことがあります。 何が悪いんでしょう? OSはMeです。 よろしくお願いします。

  • Java
  • 回答数5
  • ありがとう数2

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

  • ベストアンサー
  • Sephy
  • ベストアンサー率35% (7/20)
回答No.2

可能性1.  拡張子が表示されていない環境であるため、ファイル名が正しくない。 Foo.javaで保存したつもりが、実はFoo.java.txtになっていた、など。 可能性2.  コンパイルの仕方の間違い。  例えば クラス名:Foo ソースファイル名:Bar.java  に対して、 javac Foo.java  と打っている、など。  質問文読んでるとクラス名とファイル名ごっちゃんになってるようにも見えるので後者の可能性が高いか?  System.out.printlnの問題についてはわからない。  今回の質問で足りない情報。 1.コンパイラのバージョン(まあ礼儀みたいなもの。必要ない場合のが多いかもしれない。) 2.ソース(問題の箇所に自信があるなら一部でも。超初心者なら全部。超初心者の予想はことごとくはずれるので。) 3.コンパイル方法(コマンドプロンプトでjavac Foo.javaと打ちました、等) 4.エラーの内容(省略は絶対にしないこと。特に超初心者は必要なところをみごとに省略してくれるので。)  あと投稿したら回答を読みにくること。回答は長くても読むこと。

atomic-ant
質問者

補足

ご回答ありがとうございます。 補足をさせていただきます。 1.Java 2 SDK SE 1.4.2_02 これで良いでしょうか? 2. class Sample { public static void main(String args[]) { System.out.println("ようこそJavaへ"); } } 3.(2)をファイル名「Sample.java」でsampleフォルダに保存し、コマンドプロンプトでC:\sample>に続けて「javac Sample.java」と打ちました。 4・エラー内容は、#1の方の補足にも書きましたが、 エラー:Sample.javaを読み込めません。 エラー 1個 と表示されます。 因みに、拡張子が付いていない状態で、保存はされているようですが、自信ありません。 どうぞ、宜しくお願い致します。

その他の回答 (4)

  • Sephy
  • ベストアンサー率35% (7/20)
回答No.5

 #4の補足に対する返答です。  拡張子を表示できたのでしたら、エクスプローラの機能で拡張子ごとファイル名を変更できるようになったはずです。  変更したいファイルを右クリックして、「名前の変更(M)」を押してください。  そうしたら後ろの.txtを削除してEnterキーを押します。  「拡張子を変更するとファイルが使えなくなる可能性があります。変更しますか?」と聞かれるので、「はい」を押してください。

atomic-ant
質問者

お礼

いろいろとアドバイスありがとうございました。 無事、コンパイルができるようになりました。 本当にありがとうございました。

  • Sephy
  • ベストアンサー率35% (7/20)
回答No.4

 補足をいただいたので返信。  #2で書いた私の1,2,3,4に対する補足は完璧だと思います。  この状況であれば#2の可能性1の方が原因かもしれないと予想できます。解決方法は#3の通りです。 <<<#3より引用>>> Windowsの設定ですべての拡張子は表示するようにしてください。 やりかたはエクスプローラで表示→フォルダオプションのどっかにそんな記述があるとおもいますので 適当に設定してください。 <<<引用終了>>>  これではわかりずらいので補足。 「コントロールパネル」の中の「フォルダオプション」で拡張子を表示するように設定できます。  フォルダオプションのウインドウが開いたら「表示」タブを押してください。  下半分あたりに「詳細設定」が一覧で表示されています。その中に「登録されている拡張子は表示しない」という項目があるので、そのチェックをはずしてください。 (こちら、XPPro環境なので用語の表現が多少違うかもしれません。)  これでまだ解決しない場合はまた別の可能性を考えます。

atomic-ant
質問者

補足

度々のご回答ありがとうございます。 拡張子を表示させてみたところ、Sample.java.txtとなっていました。 ところが、何度挑戦しても「.txt」が消えてくれません。保存方法に問題があるんでしょうか?「名前をつけて保存する」で「Sample.java」しか打ち込んでないんですが、おまけが・・・ お忙しい中、申し訳ありませんが、アドバイスをお願いいたします。

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.3

DOS窓で行っているのであれば、 javacコマンドを打つ前に ソースの置いてあるディレクトリへ移動して dirと打ってください。 そのときにそのディレクトリにあるファイルの一覧が表示されるはずですので Sample.javaとなっているか確認してください。 たぶん Sample.java.xxxとか余計なものがついているような気がします。。。。 Javaの開発をするのであれば、Windowsの設定ですべての拡張子は表示するようにしてください。 やりかたはエクスプローラで表示→フォルダオプションのどっかにそんな記述があるとおもいますので 適当に設定してください。 それを確認できたら javac -classpath . Sample.java として実行してみてください。

atomic-ant
質問者

お礼

拡張子ですか・・・なんとかやってみます。 どうもありがとうございました。

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

エラーメッセージは要約せずに どんなエラー、もしくは例外がでているのかを書いてください。 エラーメッセージの最初の一行目を載せてもらえると、わかりやすいと思います。

atomic-ant
質問者

補足

補足が大変遅れて申し訳ありませんでした。 C:\sample>javac Sample.java(←これを入力しました) エラー:Sample.javaを読み込めません。 エラー 1個 と表示されます。 後者は、もう出なくなってしまったので、正確にはわからなくなってしまいました。 この程度しかわからないのですが、宜しくお願いいたします。

関連するQ&A

  • JAVAについて。コンパイルができません

    public class Main { public static void main(String[] args){ System.out.println("Hello World"); } } 上のソースで記述して、コマンドプロンプトでコンパイルしようとすると 下のような表示が起きます C:\Program Files\Java\jdk-12.0.1\bin>javac Main.java Main.java:1 エラー: Mainの書き込み中にエラーが発生しました: C:\Program Files\Java\ jdk-12.0.1\bin\Main.class public class Main { ^ エラー1個 何が原因でコンパイルされないかわからないです。 わかるかたいましたらよろしくお願いします。

  • コンパイルできません

    メモ帳に簡単なプログラムを書いて保存した所、拡張子が.txtになってしまったためかMS-DOSプロンプトでコンパイルしようとしたのですが、「コマンドまたはファイル名が違います」とエラーが出てしまいました。参考書のとおりにやっているのですが、うまくきません。どうすればコンパイルできるのでしょうか?

    • ベストアンサー
    • Java
  • Javaでコンパイルできなくなりました

    javaでコンパイルできなくなりました。今まではJava2 SDK バージョン1.4.2_03をインストールしてコマンドプロンプトからjavac、javaコマンドを用いコンパイル、実行していました。 そして、Eclipse(バーション3.0)というIDE環境に興味を持ちインストールした後にとりあえずもう一度コマンドプロンプトからjavacコンパイルしてみたらエラーがでるようになりました。 ソースを書くと長くなってしまうので簡単に説明すると、String sに"Hello World"を代入してSystem.out.println()で表示させるだけのプログラムです。Eclipseをインストールする前は実行できたのでソースに問題があるという事はありません。エラーメッセージは以下のような感じでした //エラーメッセージ 検出値 : java.lang.String 期待値 : String String s = "Hello World"; その後にソースで String s="Hello World";としていた行を java.lang.String s = "Hello World";に変更しました するとjavacではエラーが出なくなるのですがjavaコマンドで実行すると Exception in thread "main" java.lang.NoSuchMethodError: main というメッセージが出て実行できないです。 環境変数は、SDKインストール後、PATHC:\j2sdk1.4.2_03\bin;を加え、Eclipseインストール後は何も変更していません。 何が問題なのでしょうか?お願いします。

    • ベストアンサー
    • Java
  • このソースのコンパイルできません。

    java, サーブレット初心者でコンパイルできません。エラーは以下のとおりです。 初歩的な質問で申し訳ないですがよろしくお願いします。 http://www.javaroad.jp/opensource/js_tomcat2.htm のページのHelloServlet.javaをコピーしてコンパイルをしようとしたらエラーが、、、。 import java.io.*; import java.text.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<HTML>"); out.println("<BODY>"); out.println(new java.util.Date()); out.println("</BODY>"); out.println("</HTML>"); } } ーーーーーーーーーーーーーーーーーーーーーーーーーーー HelloServlet.java:7: エラー: パッケージjavax.servletは存在しません import javax.servlet.*; ^ HelloServlet.java:8: エラー: パッケージjavax.servlet.httpは存在しません import javax.servlet.http.*; ^ HelloServlet.java:10: エラー: シンボルを見つけられません public class HelloServlet extends HttpServlet { ^ シンボル: クラス HttpServlet HelloServlet.java:11: エラー: シンボルを見つけられません public void doGet(HttpServletRequest request, ^ シンボル: クラス HttpServletRequest 場所: クラス HelloServlet HelloServlet.java:12: エラー: シンボルを見つけられません HttpServletResponse response) ^ シンボル: クラス HttpServletResponse 場所: クラス HelloServlet HelloServlet.java:13: エラー: シンボルを見つけられません throws IOException, ServletException { ^ シンボル: クラス ServletException 場所: クラス HelloServlet エラー6個 エラー

    • ベストアンサー
    • Java
  • JAVAでコンパイルができないんです・・・

    参考書と同様に四苦八苦してやっていたのですが、 MS-DOSプロンプトにてエラーが出てしまいます。 その内容とは C:¥java>javac hellow.java hellow.java:3: シンボルを解決できません。 シンボル: クラス string 場所  : hellow の クラス public static void main(string args[]) helow.java:5: パッケージ systemは存在しません system.out.println("hellow world!\n"); エラー2個 C:\java> となっています 参考書に載っていたプログラムが これです public class hellow { public static void main(string args[]) { system.out.println("hellow world!\n"); } } 色々と試してみましたがうまくいかず最後の頼みで ここで質問させて頂きました。 因みにwindows98でj2sdk1.4.1_01を使用しています。 長々となってしまいましたがよろしくお願いいたします。

  • Scannerクラスがコンパイルできません。

    自分のPCでCygwinをダウンロードし、javaのプログラムの作成ができるように設定しました。 Cygwinの機能はすべてダウンロードしました。 しかし、Scannerクラスが入っているプログラムをコンパイルしようとすると、 a.java:4: シンボルを解決できません。 シンボル: クラス Scanner 場所 : aa の クラス Scanner sc = new Scanner(System.in); のようにエラーが出てしまいます。 Cygwinではなくコマンドプロンプトでも同じことが起きます。 どうしたらコンパイルができるようになるでしょうか? 解決法をご存知の方いらっしゃいましたら教えてください。

  • javaプログラムがコンパイルできない

    javaの勉強を始めようと思い、環境を作ってみました。 しかし、記念すべき第一作目のプログラムがコンパイルできなく、困っています;; 初心者で、説明もうまくないと思うので、補足要求をしていただければ幸いです。 【状況】 ・JDK6をダウンロード・インストールしました。 ・保存先は「C:\Program Files\Java\jdk1.6.0_14」です。 (この保存先は正しいのでしょうか。普通の人はどこに保存するのでしょうか。) ・コントロールパネル>システム>詳細設定>環境変数で、ユーザ環境変数で、 変数:PATH、値:C:\Program Files\Java\jdk1.6.0_14\bin を新規作成してみました。 ・サンプルプログラムを「C:\Program Files\Java」に保存しました。 (この保存先は正しいのでしょうか。普通の人はどこに保存するのでしょうか。) ・コマンドプロンプトでディレクトリを「C:\Program Files\Java」にして、「javac "(サンプルコードのファイル名)"」と実行しました。 ・「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」 と言われてしましました。 お忙しいところ恐縮ですが、助けていただけると嬉しいです。 よろしくお願いします。

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

    Javaのプログラムをコマンドプロンプトでコンパイルしようとしているんですが、プログラム中で画像データを byte [] imagedata = {-1, -40, -1, -32, 0, 16, 74, ・・・ -1, -39};のように記述しています。 そこで、コンパイルすると「このコードは64Kバイトを超えるサイズのメソッドの生成を必要とします。VirtualMachineは生成されるクラスファイルを拒否します。」と表示されてコンパイルできません。どうしたらいいのでしょうか?わかる方おられましたらお願いします。

    • ベストアンサー
    • Java
  • java コンパイル後の実行

    java初心者です。 先ほどまで簡単なプログラムをコンパイルして実行という感じで練習していましたが。 その後からコンパイルして実行するとコマンドプロンプト上で実行されずテキストエディタのファイルが実行されてしまいます。 いろいろ試したのですがわかりません。 どうか教えてください。お願いします。

    • ベストアンサー
    • Java
  • VS 2005インストール後、コマンドプロンプトからコンパイルをしたい

    友人に誘われてプログラミングを始めました。 VS 2005をインストールしたのですが、 cppファイルをコマンドプロンプトからコンパイルすることはできるでしょうか。 コマンドラインでファイル名などを指定するプログラムを書く際、 VSでプログラムを書く →VS上でビルド(コマンドラインからの引数がないのでエラーが出る) →コマンドプロンプトでプログラムを実行 としているので、ちょっと不便しています。