错误:从命令行编译带有包语句的java代码时需要标识符

错误:从命令行编译带有包语句的java代码时需要标识符,java,command-line,compilation,Java,Command Line,Compilation,我有一个简单的类,它只有一个main方法,可以打印一些东西和一个包语句,如下所示 package default; public class Main { public static void main(String[] args) { System.out.printf("something\n"); } } javac -cp default default/Main.java 我已将文件Main.java放入默认文件夹,并尝试使用以下命令编译

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

package default;

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

        System.out.printf("something\n");
    }
}
javac -cp default default/Main.java
我已将文件Main.java放入默认文件夹,并尝试使用以下命令编译它

javac default/Main.java
问题是,当我试图编译这个类时,我会逐字地得到以下错误消息

default/Main.java:1: error: <identifier> expected
package default;
       ^
1 error
但错误信息保持不变

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

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

默认值是java中的一个关键字,不能将关键字用作包名或变量名。默认关键字属于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;
}

你不能有一个与关键字同名的包,因为你可以从突出显示的代码中看到它是关键字,而不是允许的标识符。谢谢。在那之后我觉得…不聪明。我不知道默认值是一个关键词。@Wesley:检查开关语句,你会发现
default
“感觉…不聪明”意味着你学到了一些东西每个人都会这样。