java - 编译使用 geany\u0000 编写的程序时出现非法字符错误

标签 java geany

我一直在使用 Geany 来创建 Java 程序,到目前为止我都能够成功编译它们。下面用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,编译它并得到相同的非法字符错误。显然,错误出在 Raspberry Pi 的 Geany IDE 上。我想知道如何修复编辑器以成功创建和编译程序,因为它不仅仅是这个程序,它是使用 Geany 在 Java 中创建的任何程序。

最佳答案

这可能是 Geany 在保存源文件时使用的编码问题。

如果您使用 javac 编译文件而未指定 -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 使用每个字符使用一个字节进行编码。如果我将源文件保存为 UTF-16,然后尝试使用 UTF-8 编码通过 javac 进行编译,我会收到与您看到的相同的错误消息。在Geany中将文件保存为UTF-8后,文件编译没有问题。

关于java - 编译使用 geany\u0000 编写的程序时出现非法字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46989279/

相关文章:

java - 从其他 Activity 向处理程序发送消息

java - Maven2 IDEA项目,如何手动添加到web-inf/lib文件夹?

javascript - 以 root 身份运行 Geany

macports - 剪贴板无法通过小牛队的 macports 在 geany 上工作

c++ - 如何在 Geany IDE 中增加行填充?

textselection - 如何在 Geany 中阻止选择?

java - 使用 Spring Hateoas 可分页

java - 找不到 Symbol 类 ActionBarActivity(Android 回收 View )

java - 为什么不在 C++ 中将所有函数都设为虚拟函数?

python - 如何让 Geany 与 Python 一起工作?