• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コンパイラのバグ?それとも)

コンパイラのバグ?それとも

UKYの回答

  • ベストアンサー
  • UKY
  • ベストアンサー率50% (604/1207)
回答No.3

私の環境 (java/javac 1.5.0_06) で試したら > java PossibleCompilerMalfunction Hello に対してちゃんと Hello と表示されましたよ。 質問者さんのコンパイラは最新のものですか? もし本当に「null」と表示されたのなら確かにバグだと思います。

Gishi
質問者

お礼

回答ありがとうございます。 私の使ってるコンパイラは最新版です。 しかし、ひとつ謝らなくてはいけないことがあります。 古いJVMとの互換性を持たせるため、 (IEで動くアプレットを作ったりしているので) javacに常に「-target 1.1」というオプションをつける設定にしていたのを忘れてました。 つまり私の環境では、 javac SomeClass.java とタイプすると、下のように実行されるのです。 javac -source 1.2 -target 1.1 SomeClass.java オプションをつけないでコンパイルしたら、 (すなわち「-target 1.5」でコンパイルしたら) ちゃんと「Hello」と表示されました。 お騒がせしてすいません。 しかし、「-target 1.1」だと「null」になるのは やはりコンパイラのバグだと考えてよさそうでしょうか。

Gishi
質問者

補足

ちょっと補足です。 >javacに常に「-target 1.1」というオプションをつける設定にしていたのを忘れてました。 このことを思い出したのは、 UKYさんの「コンパイラは最新のものですか? 」 という回答がきっかけだったことを書き加えておきます。

関連するQ&A

  • 下記のコードを実行すると、Main.javaの

    下記のコードを実行すると、Main.javaの Command aCommand = new SimpleCommand(receiver, "action"); で、処理されない例外の型 NoSuchMethodExceptionでエラーが発生してしまうのですが、何が悪いのでしょうか?御教示お願い致します。 //ここから public abstract class Command { public abstract void execute(); } public class MyClass { public MyClass() { // } } public class SimpleCommand extends Command { public SimpleCommand(Object receiver, String action) throws NoSuchMethodException, SecurityException { _receiver = receiver; _action = action; _class = _receiver.getClass(); _method = _class.getMethod(action, null); } public void execute() { try { _method.invoke(_receiver, null); } catch (Exception e) { } } private Object _receiver; private String _action; private Class _class; private java.lang.reflect.Method _method; } public class Main { public static void main(String[] args) { MyClass receiver = new MyClass(); Command aCommand = new SimpleCommand(receiver, "action"); aCommand.execute(); } } //ここまで よろしくお願い致します。

    • ベストアンサー
    • Java
  • java 実行できない

    javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。

  • javaの基本的な質問

    下記を実行すると、上から順番にメソッドが実行され、 「Hello Java  Hello Java」 と表示されるような気がしてしまうのですが… なぜ、一度しか表示されないのでしょうか。 class Main { public static void main(String[] args) { hello(); } public static void hello() { System.out.println("Hello Java"); } }

    • ベストアンサー
    • Java
  • 回答間違い??

    class Foo{   Foo(){     System.out.println("Foo");   }   Foo(String str){     System.out.println("Foo " + str);   } } class Bar extends Foo{   Bar(String str){     Foo();  ←【ココ】     System.out.println("Bar " + str);   }   public static void main(String args[]){     Bar obj2 = new Bar("Hello");   } } あるテキストの問題で【ココ】の部分に入れる適切な処理として、super()かFoo()が正解でした・・・ しかしこのようにFoo()としてしまうとコンパイルエラーが出ます。 回答間違えだとは思うのですが、 super()以外の回答としてどのようなものがありますでしょうか? ためしにFoo.Foo()とやってみましたがだめでした・・・。 ちなみに Foo Bar Hello と出るようにします。

    • ベストアンサー
    • Java
  • この文章あっていますか?

    public class HelloWorld { public static void main(String[] args) { String message; message = "Hello Java World !"; System.out.println(message); } } これが正解文なのですが public class HelloWorld { public static void main(String[] args) { String message; message = "Hello java World"; System.out.ptintln(message); } } この文のどこが間違っていますか?ぜんぜんわからないので誰か教えてください。

    • ベストアンサー
    • Java
  • javaの質問です。その2

    明日JavaのBronze試験を受けに行くのですが、全然わからずに困っています。 紫色のJavaプログラマBronzr[SE7]という本を使用しています。 本の模試の問題です。 38 Class Foo{ static int val; static int methodA() {return ++val;} } Class Test{ public static void main(String[] args){ Foo.obj =new Foo(); obj.methodA(); }} } この問題では int valと宣言していますが、初期化をしていません。 なのでnullのはずなのですが、 なぜ++valで1になるのかがよくわかりません。 null+1は計算できないと思うのですが、、、、、 明日テストなので本当に困っています。

    • ベストアンサー
    • Java
  • JavaでXMLといったら何を使いますか?

    JavaでXMLファイルを取り扱うときには、DOM, SAX, xerces, relaxer, XMLSchema, XPathといったキーワードが出てきますが、とりあえずXMLファイルを読めればいい、というときはどのライブラリを使うのがいいのでしょうか? 利用目的としては、単純なXMLからデータを読み込んで、それをVelocityテンプレートとマージしてファイルに保存することを考えています。 例 <javafile>  <name>Foo.java</name>  <class>   <modifier>public</modifier>   <name>Foo</name>   <method>    <modifier>public</modifier>    <modifier>static</modifier>    <type>void</type>    <name>main</name>    <arg>     <type>String[]</type>     <name>args</name>    </arg>    <body>     System.out.println("Hello");    </body>   </method>  </class> </javafile> から public class Foo{  public static void main(String[] args){   System.out.println("Hello");  } } を作る感じです。

    • ベストアンサー
    • Java
  • final変数について

    はじめまして。 質問があります。 以下のコードをみてください。 ---------------------------------------------------------------- final class Demo01 { final static String str1 = null; public static void main(String[] args) { final String str2= null; for(int i=0;i<10;i++) { final String str3 = null; // str1 = "" + i; // コンパイルエラー // str2 = "" + i; // コンパイルエラー // str3 = "" + i; // コンパイルエラー final String str4 = "" + i; // OK } } } ---------------------------------------------------------------- str1からstr3までは、コンパイルエラーになるのは理解できるのですが、str4がコンパイルエラーにならない理由がわかりません。 どうかご教授お願いします。

    • ベストアンサー
    • Java
  • java 質問です 多分超初心者の質問です。

    pubic class Example1{ public static void main(String[] args){ 内容 } } コンパイラによって作成されたファイルのファイル名をお願いします

    • ベストアンサー
    • Java
  • javaが実行されない

    雑誌を買ってjavaでプログラミングをしているのですが なぜか実行できません。 ツールはteraPadとJDKを使っています。 public class sample { public static void main(String[] args) { System.out.println("hello!"); } } コンパイルし、classファイルを実行すると Exception in thread "main" java.lang.NoClassDefFoundError: sample/class と出て実行できません。結果はhello!となるはずなのですがどなたかどこがおかしいのか教えてください。

    • ベストアンサー
    • Java