shell - 用命令行对javac进行编译,总是『cannot find symbol』,但是eclipse执行不会出现问题
阿神
阿神 2017-04-18 10:48:47
0
2
571

代码如下
分别是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的时候显示如下:

阿神
阿神

闭关修行中......

全員に返信(2)
PHPzhong

cd デスクトップ;
javac cs121assignment1.TestFood;

不要
cd デスクトップ/cs121assignment1;

いいねを押す +0
刘奇

コードの最初の行にあるパッケージステートメントをすべて削除します
.java ファイルを含むフォルダーに移動します
javac *.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 2 つの .class ファイルを取得します

java TestFoodコード>🎜は正常に実行されます🎜 🎜この問題は実際にはパッケージの使用方法に問題があります🎜別の方法は、ファイルの最初の行にあるパッケージを削除しないことです🎜javac -d ~/Desktop/cs121assignment1 Food.java TestFood.java 🎜次で終わるファイルが生成されます。cs121assignment1 という名前の新しいフォルダーには、Food.class と TestFood.class が含まれています。🎜新しく生成された java を使用します。 code>cs121assignment1 cs121assignment1.TestFood は正常に実行されます🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!