错误:从命令行使用包语句编译java代码时预期的标识符

时间:2016-10-19 18:37:38

标签: java command-line compilation

我有一个简单的类,只有一个main方法打印一些东西和一个包语句如下

package default;

public class Main
{
    public static void main(String[] args)
    {

        System.out.printf("something\n");
    }
}

我已将Main.java文件放入默认文件夹中,并尝试使用以下命令对其进行编译。

javac default/Main.java

问题是当我尝试编译类时,我会逐字地收到以下错误消息

default/Main.java:1: error: <identifier> expected
package default;
       ^
1 error

我真的很困惑。如果我把package语句拿出来或者把代码放到像eclipse这样的IDE中,那么错误就会消失,而且工作正常。我试过在互联网上搜索这个问题的答案,所有消息来源都说我正在做的事情应该有效。

我还试图通过包含类路径来修改几个Stack Overflow线程所推荐的编译语句,如下所示

javac -cp default default/Main.java

但错误信息保持不变。

我大学的一些同事建议在IDE之外使用软件包是不可能的,我的代码通过命令行编译的唯一方法是删除软件包语句,但这个答案似乎不对我

如果有人知道我为什么会遇到这个问题,我会非常感谢你的回复。我真的很想知道我做错了什么。

1 个答案:

答案 0 :(得分:1)

“default”,是java中的关键字,不能将关键字用作包名或例如作为变量名。 default关键字属于switch语句:

switch(x){
    case 1: 
        //do stuff if x is 1...
        break;
    default:
        //do stuff if x is not any of the other cases
        break;
}