recherche

Maison  >  Questions et réponses  >  le corps du texte

shell - 用命令行对javac进行编译,总是『cannot find symbol』,但是eclipse执行不会出现问题

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

阿神阿神2802 Il y a quelques jours683

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-04-18 10:50:47

    cd Desktop;
    javac cs121assignment1.TestFood;

    不要
    cd Desktop/cs121assignment1;

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 10:50:47

    Supprimez toutes les instructions du package dans la première ligne du code
    cd dans le dossier contenant le fichier .java
    Exécuterjavac *.java
    pour obtenir deux fichiers .class
    java TestFood
    Il fonctionnera avec succès

    Ce problème est en fait un problème d'utilisation du package
    Une autre méthode consiste à ne pas supprimer le package dans la première ligne du fichier
    javac -d ~/Desktop/cs121assignment1 Food.java TestFood.java
    générera un nouveau dossier nommé cs121assignment1 contenant Food.class 和 TestFood.class
    Utilisez cs121assignment1 dans le répertoire supérieur du java cs121assignment1.TestFood nouvellement généré pour s'exécuter avec succès

    répondre
    0
  • Annulerrépondre