Jay*_*Jay 6 java compiler-errors
我的编码经验只能回溯几年,所以这个问题应该很容易回答.
我写了两个接口:Class和Game.接口CLASS应该扩展接口GAME.
以下是两个界面来源:
package Impl;
public interface Game
{
//METHODS AND VARS
}
package Impl;
public interface Class extends Game
{
//METHODS AND VARS
}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试编译第二个接口时,我收到以下错误
class.java:4: cannot find symbol
symbol: class Game
public interface Class extends Game
^
Run Code Online (Sandbox Code Playgroud)
我的Game类被编译,类文件与两个java文件在同一目录中.我一直无法找到解决方案.有没有人有任何想法?
类名称区分大小写.您可能已经创建了一个名为的接口game,但您在Class接口声明中将Game其引用为编译器无法找到的接口.
但是,您还可以从Impl包中进行编译.为此,您需要引用类路径,以便编译器可以从包结构的基础中查找类.您可以在类名前添加一个-classpath ..arg javac:
javac -classpath .. Class.java
Run Code Online (Sandbox Code Playgroud)
或者,您可以执行更常见的操作,从包结构的根目录进行编译.为此,您需要指定Class文件的路径:
javac Impl\Class.java
Run Code Online (Sandbox Code Playgroud)
你总是可以添加一个-classpath .清楚的.
您需要了解Java类路径的工作方式以及如何组织源代码.基本上,你的问题是当javac编译器编译"Class.java"时,它不希望在当前目录中找到"Game.class".它(可能)正在"Impl/Game.class"中寻找它.
IBM" 管理Java类路径 "页面提供了有关如何设置类路径以及java实用程序(例如java和javac)如何使用它来查找类文件的深入讨论.Oracle" 设置类路径 "页面提供了更简洁的更多信息......但您需要仔细阅读.
顺便说一句,你的代码中有一些风格暴行:
Class是一个坏主意,因为它与java.lang.Class默认导入的被调用类冲突.