代码如下
分别是enum和testclass两个java文件
package cs121assignment1;
public enum Food {
    APPLE("fruit", 55),
    BANANA("fruit", 80),
    CARROT("vegetable", 60);
    
    private final String catagory; //vegetable or fruit
    private final int calorie;
    
    Food(String catagory, int calorie){
        this.catagory = catagory;
        this.calorie = calorie;
    }
    
    public int getCalorie(){
        return calorie;
    }
    
    public String getCatagory(){
        return catagory;
    }
}
package cs121assignment1;
public class TestFood {
public static void main(String[] args){
    System.out.println("All foods:");
    
    for(Food food : Food.values()){
        System.out.printf("%s, catagory: %s, calorie: %d kilocalorie each\n", food, food.getCatagory(), food.getCalorie());
    }
        
}
eclipse中运行结果如下:
但是用命令行执行javac的时候显示如下:

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
cd Desktop;
javac cs121assignment1.TestFood;
不要
cd Desktop/cs121assignment1;
把代码中第一行的package语句都删除
cd 到包含.java文件的文件夹
执行
javac *.java得到两个.class文件
java TestFood即可运行成功
这个问题其实是package的用法问题
另外一种方法,不要去掉文件第一行的package
javac -d ~/Desktop/cs121assignment1 Food.java TestFood.java会生成一个以
cs121assignment1为命名的新文件夹包含Food.class 和 TestFood.class在新生成的
cs121assignment1的上层目录用java cs121assignment1.TestFood即可运行成功