代码如下
分别是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的时候显示如下:
怪我咯2017-04-18 10:50:47
コードの最初の行にあるパッケージステートメントをすべて削除します
.java ファイルを含むフォルダーに移動します
javac *.java
を実行しますjavac *.java
得到两个.class文件java TestFood
即可运行成功
这个问题其实是package的用法问题
另外一种方法,不要去掉文件第一行的packagejavac -d ~/Desktop/cs121assignment1 Food.java TestFood.java
会生成一个以cs121assignment1
为命名的新文件夹包含Food.class 和 TestFood.class
在新生成的cs121assignment1
的上层目录用java cs121assignment1.TestFood
2 つの .class ファイルを取得します
java TestFoodコード>🎜は正常に実行されます🎜
🎜この問題は実際にはパッケージの使用方法に問題があります🎜別の方法は、ファイルの最初の行にあるパッケージを削除しないことです🎜javac -d ~/Desktop/cs121assignment1 Food.java TestFood.java
🎜次で終わるファイルが生成されます。cs121assignment1
という名前の新しいフォルダーには、Food.class と TestFood.class
が含まれています。🎜新しく生成された < の上位ディレクトリにある java を使用します。 code>cs121assignment1
cs121assignment1.TestFood
は正常に実行されます🎜