无法在Mac OS X上使用Javac

3

我正在尝试通过命令行在Snow Leopard上使用javac编译。我已经安装了Xcode。我只是使用一个简单的Hello World文件,在Eclipse中它可以工作,但我无法使用javac使其工作。
javac -version返回javac 1.6.0_17

HelloWorld.java

public class HelloWorld
{
   public static void main(String[] args)
   {
 String message = "Welcome to Java!";
        System.out.println(message);
   }
}

我输入了命令:javac HelloWorld.java,但是出现了以下错误。
HelloWorld.java:1: class, interface, or enum expected
public class HelloWorld 
^
1 error

并且...

javac -cp . HelloWorld.java

返回相同的结果。

echo $CLASSPATH 只会返回空白。

感谢您的帮助。

2个回答

8
你是否使用了UTF-8编码,并在文件开头加入了字节顺序标记?这可能会让javac感到困惑。
用十六进制编辑器查看文件以查看其外观。

它是UTF-8编码,我应该将其改成什么? - user331570
好的,我把它改成了西方字符集(Mac OS Roman),可以用了!谢谢,但是如果我想要使用 UTF-8 呢?我该怎么做? - user331570
4
您可以使用UTF-8编码,并运行“javac -encoding UTF-8 ...”命令,否则将使用平台默认设置。 - Chris Lercher
@elguapo-85:我个人会遵循chris_l的建议,在命令行上明确指定它:UTF-8通常是文本文件的不错选择。 - Jon Skeet

2
在Mac OS X 10.5.8上,默认的file.encodingMacRoman。Eclipse使用此设置作为默认值,但可以在Eclipse > Preferences > General > Workspace > Text file encoding以及每个项目的属性中更改该默认值。在NetBeans中,类似的设置也可在每个项目的属性中找到。
图片链接:EclipseWorkspace

非常感谢。是否可以更改Mac OS X的默认编码,这样做会引起问题吗? - user331570
@elguapo-85:我从未尝试过。在Eclipse中我使用MacRoman,在BetBeans中则使用UTF-8。终端设为UTF-8,需要时会像@chris_l和@Jon Skeet在评论中建议的那样指定“-encoding”。 - trashgod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接