• ベストアンサー

落ち物ゲームでのコンパイルエラー(java)

テトリスのようなものを作りたいと思って参考にしようと、以下のサイトの「11.完成」のところのソースをエディタにコピーして ttp://himuka.miyazaki-c.ed.jp/db/kyouzai/public/java/teto_kaisetu/fram.htm コンパイルしようとしたら teto.java:165: \65373 は不正な文字です。 } ^ teto.java:196: ';' がありません。 } ^ teto.java:321: \12288 は不正な文字です。  g.setColor(Color.black); のように3個のエラーが出ました。 そこで165行目の「}」を消して書き直したりして色々試すと最終的に teto.java:345: 'class' または 'interface' がありません。 } ^ teto.java:346: 'class' または 'interface' がありません。 ^ のように2個のエラーが出てコンパイルできません。 ゲームなどは作ったことがないし、javaの基礎力がまだまだ足りないので原因がわかりません。 どこが原因でエラーが出るのか教えてください。お願いします。

noname#24851
noname#24851
  • Java
  • 回答数6
  • ありがとう数7

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

  • ベストアンサー
回答No.6

>Eclipseは使ったことがないのですが、Eclipseを使わないとこの警告を無視して実行することはできないのですか? Eclipseの中身を知ってるわけではないので、本当かはわからないですが、たぶんEclipseの中身では警告が出ていると思いますよ。ただそれをユーザーに見せないだけです。 つまり、あなたも警告は出ているけど無視して実行することができます。警告は出たけど、無事(?)Tet.classやBlock.classが生成されていませんか?後はappletviewerなりなんなりでアプレットを起動してください。 ちなみに、起動してみましたが、ゲームのやり方はいまいちよくわかりませんでした。

noname#24851
質問者

お礼

何度もありがとうございます。 仰るとおりクラスファイルが作成されてました! アプレットを起動させることができました。 でも仰るとおりゲームがよくわかりませんでした。あのサイトにのってるのと違いました・・・。2個目のブロックが降りてこない。 なんじゃこりゃ!!

その他の回答 (5)

回答No.5

これは「エラー」ではありません。「警告」です。 「エラー」のときは実行が全くできませんが、「警告」レベルだと(ある程度の問題はあるが)実行できます。 これは http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html にあるThreadクラスのstop()メソッドを見てもらえればわかると思いますが、このメソッドが「推奨されていない」ことによる警告です。Javaの古いバージョンでは普通に使えたけど、新しいバージョンになって何らかの問題が見つかったから、本当はなくしたいけど互換性のために残しているといったパターンが多かった気がします。 このレベルの警告を重要視するか、無視するかはあなた次第ですが、下記のHPにEclipseでの対応についてかかれてあるので、参考にしてみてください。

参考URL:
http://www008.upp.so-net.ne.jp/kikuta/eclipse/tips/deprecation.html
noname#24851
質問者

お礼

ありがとうございます。 なるほどエラーではなく警告なんですね。 Eclipseは使ったことがないのですが、Eclipseを使わないとこの警告を無視して実行することはできないのですか?

回答No.4

今度はどのようなコンパイルエラーが出ましたか? 私の環境ではNo.1さんの内容とNo.2の内容について修正を加えるとコンパイルできたのですが。

noname#24851
質問者

お礼

何度もありがとうございます! 注: teto.java は推奨されない API を使用またはオーバーライドしています。 注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。 と出たので、-deprecationをつけてコンパイルしようとすると teto.java:251: 警告: java.lang.Thread の stop() は推奨されません。 th.stop(); ^ 警告 1 個 と出ました。 自分はたぶん1.4を使ってると思いますけど、これはJavaのバージョンの違いによるエラーなんですか??

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#1>どうやったら正しくコンパイルできるのでしょうか? #2様の仰る通りです。

noname#24851
質問者

お礼

できませんでした!!

回答No.2

>teto.java:267: 定数式が必要です。 >case e.VK_DOWN:{a=x;b=y; caseの後は定数式が必要です。 つまり、caseの後が変数だと、その変数の値によって値がぶつかる switch(~) { case 1:~ case 1:~ } 等するからです。というわけで、caseの後ろをインスタンスからの定数呼び出しではなく、staticなアクセスによる定数呼び出しにします。 それぞれの行を case KeyEvent.VK_DOWN:{a=x;b=y; case KeyEvent.VK_LEFT:{a=x;b=y; case KeyEvent.VK_RIGHT:{a=x;b=y; case KeyEvent.VK_SPACE:{c++; に変えてください。

noname#24851
質問者

お礼

ありがとうございます。 でも仰るとおり書き換えましたがやはりエラーが出てコンパイルできませんでした!

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

165行目の}は、全角文字になっていますので半角文字の}に直す必要があります。 321行目の先頭に全角スペースがあります、半角スペースにする必要があります。 345行目のエラーは、} が整合していないためのものです。 344行目の} が余計です。

noname#24851
質問者

補足

すばやい回答ありがとうございます!! 仰ったとおりに改変してコンパイルしてみると teto.java:267: 定数式が必要です。 case e.VK_DOWN:{a=x;b=y; ^ teto.java:279: 定数式が必要です。 case e.VK_LEFT:{a=x;b=y; ^ teto.java:289: 定数式が必要です。 case e.VK_RIGHT:{a=x;b=y; ^ teto.java:299: 定数式が必要です。 case e.VK_SPACE:{c++; ^ と出てしまいました;; どうやったら正しくコンパイルできるのでしょうか??教えてください!!

関連するQ&A

  • javaのエラー(java超初心者)

    D:\Sample>javac Sample2.java Sample2.java:7: \12288 は不正な文字です   } ^ Sample2.java:7: \12288 は不正な文字です   } ^ Sample2.java:7: ';' がありません。   } ^ というエラーがでたのですが原因はなんでしょうか

    • ベストアンサー
    • Java
  • javaのコンパイルエラーについて

    abstract を用いたクラスを作成し、コンパイルした際に ?サソabstract class Vehicle ↑この文字は、エンコーディングMS932にマップできません。 encoding utf-8をつけて コンパイル ?abstract class Vehicle ↑\ufeffは不正な文字です。 abstractの前には何も入っておらず、スペースも消してあります。 abstract未実装の他のソースはコンパイルできます。 解決法が知りたいです。

    • ベストアンサー
    • Java
  • コンパイルエラー(匿名クラス)

    下記ソースがコンパイルエラーを起こしてどうしたらよいか分かりません。 下記エラー参照 Main.java:2: 型の開始が不正です。 new String(){ ^ Main.java:6: <identifier> がありません。 };ん。 (下記ソース) class NormalClass{ new String(){ public String ToString(int n){ return n + ""; } }; } class Main{ public static void main(String args[]){ NormalClass test = new NormalClass(); System.out.println(test.ToString(10)); } }

    • ベストアンサー
    • Java
  • 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について。コンパイルができません

    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個 何が原因でコンパイルされないかわからないです。 わかるかたいましたらよろしくお願いします。

  • jdk-1_5_0_07でのコンパイルエラー

    初めて質問させていただきます。 WindowsXP HOME SP2 でJavaを勉強している初心者です。エディターはEmEditorを使っています。jdk1.5.0を使って勉強していたのですが、PCのリカバリのため、新しくjdkー1_5_0_07-windows-i586-pをDLしてセッティングしたのですが、以下のような簡単な文でエラーメッセージが出ます。意味が分からないのでどうしたらいいのか分からず困っています。よろしくお願いします。 class Hello { public static void main(String args[]) { System.out.println("Hello, world!"); } } エラーメッセージ F:\java>javac Hello.java Hello.java:0: 警告:この文字は、エンコーディングMS932にマップ出来ません ?サソ/*Name it "Hello.java" ^ Hello.java:1:\65533は不正な文字です。 ?サソ/*Name it "Hello.java" ^ エラー1個 警告1個

    • ベストアンサー
    • Java
  • コンパイルエラー

    J2sdkeeをインストールしてコンパイルをしようとすると、 一行目の import javax.ejb.*; の部分で javax.ejbパッケージは存在しません。 というメッセージがでてコンパイルエラーになります。 pathとJAVA_HOMEとJ2EE_HOMEとCPATHを設定したのですが、何が原因なのかわかりません。 わかる方教えてください。

    • ベストアンサー
    • Java
  • javaのコンパイルエラーが解決できません。

    http://plaza.rakuten.co.jp/kakuekiteisha5/のプログラムをコンパイルしようとすると、 DrawMainColorChangable.java:93: ここにインタフェースが必要です。 class ColorListener implements ChangeListener{ ^ DrawMainColorChangable.java:134: addChangeListener(javax.swing.event.ChangeListe ner) (javax.swing.colorchooser.ColorSelectionModel 内) を (ColorListener) に適用 できません csm.addChangeListener(cl); ^ エラー 2 個 とエラーが表示されます。 なぜエラーになるのでしょうか。よろしくお願いします。

    • ベストアンサー
    • Java
  • 【ジェネリックス】コンパイルエラーが出ます。

    毎度お世話になります。 Javaの勉強をしております。 テキストのとおりに打ち込んだのですがコンパイルエラーとなり 対処方法の目処が立ちません。。。 環境: OS:Windows2000 version:Java6 ソース内容 ===ここから===================== package test01; import java.util.*; public class Gen1 { public static void main(String[] args) { List<String> list = new ArrayList<String>(); //リストに文字列を書き込む list.add("テスト1"); //リストから文字列を読み出す String s= (String)list.get(0); System.out.println(s); } } ===ここまで===================== コンパイルエラーの内容は以下のとおりです。 Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。 トークン "<" に構文エラーがあります。AssignmentOperator が無効です。 トークン "=" に構文エラーがあります。正しくは != です。 トークンに構文エラーがあります。構成の位置が間違っています。 トークン ")" に構文エラーがあります。正しくは : です。 at com.sample.nsw2008101202.WordLoveSeeker3.main(WordLoveSeeker3.java:32) ソースコードのエラー該当箇所は↓になります。 List<String> list = new ArrayList<String>();  どなたか対象方法をご存知の方、ご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • import時のコンパイルエラー

    Java初心者です。 現在、あるマニュアルにより勉強をしております。 以下の様に簡単なクラスを2つ作成しようと思って おりますが、どうもマニュアル通りにやってもコンパイル エラーが発生します。 まず、以下は成功し、printer.classが作成されます。 <printer.javaの中身> public class printer { public void print() { System.out.println("printer class OK"); } } 次に、上記クラスを使用する以下のクラスのコンパイル を行うと、エラーが発生します。 <app.javaの中身> import printer; public class app { public static void main( String[] args ) { //printerクラス利用 (new printer()).print(); } } エラー内容: app.java:2: '.' がありません。 import printer; ^ どうも、インポート時のprinterクラスの指定方法が悪そうなのですが、わかりません。一応マニュアル通りに記述しているつもりです。環境はwin2000,java1.4.1_02です。以上、よろしくお願いします。 ※編集内容を確認すると、文頭のスペース、タブが全部削除されてしまい、大変みにくくなってしまいました。

    • ベストアンサー
    • Java

専門家に質問してみよう