Java包和目录

时间:2017-10-24 22:03:12

标签: java package

可能与此问题类似:package does not exist error! 但我不明白如何管理它。

我尝试按照本课程(法语抱歉)https://openclassrooms.com/courses/les-tests-unitaires-en-java

所以我有以下树: 车库/测试/ XXXTest.java,车库/ main / impl / XXX.java,车库/ main / inter / XXX.java

在测试中我有这个代码(GPSTest.Java)

package test;

import static org.junit.Assert.*;
import org.junit.Test;

import main.impl.GPS;

public class GPSTest
{
    @Test
    public final void GPSTest() {
        GPS gps = new GPS();
        double prix = gps.getPrix();
        assertTrue("Test prix GPS", prix == 113.5);
    }
}

并且在main / impl中我有这个(GPS.java)

package main.impl; 

import main.inter.Option;

public class GPS implements Option
{
    public double getPrix()
    {
        return 113.5;
    }
}

在main / inter我有(Option.java)

package main.inter;

public interface Option 
{
    public double getPrix();
}

当我尝试编译时(我在车库里)

javac -cp "C:\Program Files (x86)\Java\junit-4.10.jar" test\GPSTest.java

我有这个错误

test\GPSTest.java:6: error: package main.impl does not exist
import main.impl.GPS;

我是否需要在包名中添加Garage?在本课程(上面链接)中,它是相同的架构和相同的包名......但是他们使用Eclipse,所以可能存在一些差异(我使用命令行)

EDIT 如果我删除测试部分它的工作原理: 测试\ TestGPS.java

package test;

/*import static org.junit.Assert.*;
import org.junit.Test;*/

import main.impl.GPS;

public class GPSTest
{
   // @Test
    public final void GPSTest() {
        GPS gps = new GPS();
        double prix = gps.getPrix();
        //assertTrue("Test prix GPS", prix == 113.5);
        System.out.println(prix);
    }
}

使用以下命令不会出错...所以我认为问题出在classpath上,但我该如何解决呢?

javac test\GPSTest.java

2 个答案:

答案 0 :(得分:0)

  

我是否需要在包名称中添加Garage

不,但是在编译时你需要在目录Garage中,这样你就是以下目录树的头部:

main
main/impl
main/impl/GPS.java
main/inter
main/inter/Option.java
test
test/GPSTest.java

答案 1 :(得分:0)

问题在于clathpass。我必须在路径的其余部分之前将当前文件添加到.;的路径:

javac -cp .;"C:\Program Files (x86)\Java\junit-4.10.jar" test\GPSTest.java