2017-10-28 8 views
0

これまでgeanyを使用してJavaプログラムを作成していましたが、これまでは正常にコンパイルできました。 javaで以下のように作成されたシンプルなプログラムは、geanyを使って作成されましたが、不正なcharcterエラー(\ u0000)が発生しました。Java - geany u0000を使用して作成したプログラムをコンパイルするときに不正な文字エラーが発生しました

public class SumOfCubedDigits 
{ 
    public static void main(String[] args) 
    { 
     for (int i=1; i<=9; i++) 
     { 
      for (int j=0; j<=9; j++) 
      { 
       for (int k=0; k<=9; k++) 
       { 
        double iCubed=Math.pow(i,3); 
        double jCubed=Math.pow(j,3); 
        double kCubed=Math.pow(k,3); 
        double cubedDigits = iCubed + jCubed + kCubed; 
        int concatenatedDigits = (i*100 + j*10 + k); 
        if (cubedDigits==concatenatedDigits) 
        { 
         System.out.println(concatenatedDigits); 
        } 
       } 
      } 
     } 
    } 
} 

私はnanoでプログラムを再作成し、正常にコンパイルできました。その後、別の名前のSumTest.javaでgeanyにコピーしてコンパイルし、同じ違法な文字エラーが発生しました。明らかに、エラーはラズベリーパイ用のgeany IDEです。私は、このプログラムだけでなく、geanyを使ってjavaで作成されたプログラムでもあるので、プログラムを作成してコンパイルするためにエディタを修正する方法を知りたいと思います。

答えて

1

これは、Geanyがソースファイルを保存するときに使用するエンコードに問題がある可能性があります。

でファイルをコンパイルする場合、-encodingパラメータを指定せずにプラットフォームのデフォルトのエンコーディングが使用されます。現代のLinuxでは、これはUTF-8と思われます。 WindowsではANSI文字セットまたはUTF-16のいずれかと考えています。デフォルトのエンコーディングは、あなたが小さなJavaプログラムをコンパイルして実行できるかを調べるために

public class DefaultCharsetPrinter { 
    public static void main(String[] argv) { 
     System.out.println(Charset.defaultCharset()); 
    } 
} 

これは、Javaプログラムで使用されるデフォルトのエンコーディングの名前を印刷する必要があります。

Geanyでは、メニューのドキュメント>エンコードの設定でファイルエンコードを設定できます。これをjavacと同じ値に設定する必要があります。 Geanyマニュアルにはadditional options for setting the encodingと記載されています。

ヌル文字について不平を言っているのを見ると、Geanyはファイルごとに複数バイト(たとえばUTF-16)のファイルを格納していますが、javacは1バイトキャラクター。ソースファイルをUTF-16として保存し、UTF-8エンコーディングを使用してjavacでコンパイルしようとすると、同じエラーメッセージが表示されます。ファイルをGeanyにUTF-8として保存すると、ファイルは問題なくコンパイルされます。

関連する問題