包导入/编译无效

时间:2016-09-06 14:24:55

标签: java compilation compiler-errors

我正在尝试编译一个小项目。它由两个类Fraction.java组成,它代表一个数学分数,并提供一些简单计算的方法,以及Main.java,它包含创建两个分数并进行一些计算的主要方法。项目结构如下:

MyFractionProject
|
+-------src
         |
         +------fractionpackage
                       |
                       +-------Fraction.java
                       +-------Main.java

由于两个类都在同一个包中,我不必添加包声明吗?我只需将Fraction.java导入Main.java,例如:

import Fraction;
public class Main {
    public static void main(String[] args) {
        Fraction f1 = new Fraction(...)
        ...

然而,这不起作用。当我尝试从MyFractionProject/src/fractionpackage编译这两个类时,fraction类编译得很好,但是javac Main.java给了我这个错误:

localhost:fractionpackage MyUserName$ javac Fraction.java
localhost:fractionpackage MyUserName$ javac Main.java
Main.java:1: '.' expected
import Fraction;
        ^
Main.java:1: ';' expected
import Fraction;
         ^
2 errors

我知道这是一个常见的初学者问题,但我还没有真正找到一个简洁的解释,说明哪个类必须按哪个类从哪个工作目录到哪个类文件夹进行编译。通常,受访者只是在目录或类路径中疯狂地跳转,这对初学者来说根本没用。

我以为自己已经选择了最基本的设置,即使这样做也不是很令人沮丧。有人可以看看它并给我具体说明(与各自的工作目标),这将使该项目运行?

3 个答案:

答案 0 :(得分:0)

您不会在包中导入其他类:如果您的包p中有类C1,C2,... Cn;那么所有这些C1,...都可以互相使用而不需要任何import语句。

您只需要从不同的包中导入类。

因此当 Fraction Main 在同一个包中时;然后删除那些import语句;你应该做得好!

答案 1 :(得分:0)

如果两个类都在同一个包中,那么只需为另一个类创建一个对象就不需要导入任何东西。只有在要从另一个包访问类时才必须导入类。

答案 2 :(得分:0)

我对java也是全新的,但我最初的猜测是你不必明确导入类,因为你说它们属于同一个包。所以只需删除导入分数;