java包不存在且源文件不正确
所以我制作了一个名为util的文件夹,并在其中放置了四个类以及名为unit10Assignment的程序。我创建了一个包util,并在每个类的顶部键入“package util;”,代码如下:java包不存在且源文件不正确,java,packages,Java,Packages,所以我制作了一个名为util的文件夹,并在其中放置了四个类以及名为unit10Assignment的程序。我创建了一个包util,并在每个类的顶部键入“package util;”,代码如下: package util; public class Employee 然后我写道: import util.*; import javax.swing.JOptionPane; public class unit10Assignment 最重要的是。然而,当我编译它时,它告诉我。有人知道为什么吗
package util;
public class Employee
然后我写道:
import util.*;
import javax.swing.JOptionPane;
public class unit10Assignment
最重要的是。然而,当我编译它时,它告诉我。有人知道为什么吗?我试着玩弄它,但当我输入import java.util*时,它就消失了;相反,我不确定我的老师想要的例子中没有java
它还说“错误的源文件”“包不包含类Employee”,但是,在我键入package语句之前,所有的东西都编译并运行得很好,从那时起我就没有对代码做任何更改。如果我从employee类tho中删除了package语句,则会出现相同的消息,但会说另一个类不存在
谢谢你的帮助
注意:无论我是使用java.util还是仅使用util,这个源代码错误的问题仍然会出现
感谢您的帮助请确保:
- 文件名与类名匹配(例如,类
的Employee
)Employee.java
- 文件根据其包(即
)位于相应的文件夹中util
你在用IDE吗?如果没有,使用一个realy对这类事情会有很大帮助。我将假设您的项目设置如下:
util/
Employee.java
unit10Assignment.java
bin/
(如果不是,那没关系——只要它们在某个文件夹中。bin/
应该存在。)
包的工作方式是它们是硬盘上的文件夹-要导入的包要求要导入的文件夹和类都存在于该特定文件夹中。这就是为什么软件包很方便的原因——您可以有两个名为Employee
的类,让它们生活在完全不同的位置*
下面是如何在不使用IDE的情况下将它们编译成类似于包的结构。将$HOME替换为Java类文件夹的完整路径
javac -sourcepath $HOME/util -d $HOME/bin *.java
下面是您如何运行主类:
java -cp $HOME/bin util.$MAIN_CLASS
这些旗帜的具体含义:
指示javac在此特定目录中查找源文件-sourcepath
为.class文件指定输出目录-d
指示java将此文件夹添加到其类路径-cp
*:非常非常大的项目通常可以使用与其他类相同的名称;如果你想使用一个特定的文件夹,你必须使用它。它只是一个文件夹,就像
util/
一样。通常情况下,二进制文件位于项目中(因此称为bin)。