您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-02-03 13:49:20浏览:47作者:猪猪

问题描述

代码如下分别是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 eachn', food, food.getCatagory(), food.getCalorie()); }}

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

但是用命令行执行javac的时候显示如下:

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

问题解答

回答1:

cd Desktop;javac cs121assignment1.TestFood;

不要cd Desktop/cs121assignment1;

回答2:

把代码中第一行的package语句都删除cd 到包含.java文件的文件夹执行javac *.java得到两个.class文件java TestFood即可运行成功

这个问题其实是package的用法问题另外一种方法,不要去掉文件第一行的packagejavac -d ~/Desktop/cs121assignment1 Food.java TestFood.java会生成一个以cs121assignment1为命名的新文件夹包含Food.class 和 TestFood.class在新生成的cs121assignment1的上层目录用java cs121assignment1.TestFood即可运行成功

标签: java