java包不存在且源文件不正确

java包不存在且源文件不正确,java,packages,Java,Packages,所以我制作了一个名为util的文件夹,并在其中放置了四个类以及名为unit10Assignment的程序。我创建了一个包util,并在每个类的顶部键入“package util;”,代码如下: package util; public class Employee 然后我写道: import util.*; import javax.swing.JOptionPane; public class unit10Assignment 最重要的是。然而,当我编译它时,它告诉我。有人知道为什么吗

所以我制作了一个名为util的文件夹,并在其中放置了四个类以及名为unit10Assignment的程序。我创建了一个包util,并在每个类的顶部键入“package util;”,代码如下:

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
这些旗帜的具体含义:

  • -sourcepath
    指示javac在此特定目录中查找源文件
  • -d
    为.class文件指定输出目录
  • -cp
    指示java将此文件夹添加到其类路径

*:非常非常大的项目通常可以使用与其他类相同的名称;如果你想使用一个特定的文件夹,你必须使用它。

它只是一个文件夹,就像
util/
一样。通常情况下,二进制文件位于项目中(因此称为bin)。