【问题标题】:Java package and directoriesJava 包和目录
【发布时间】:2017-10-24 22:03:11
【问题描述】:

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

我尝试学习这一课(法语对不起)https://openclassrooms.com/courses/les-tests-unitaires-en-java

所以我有以下树: Garage/test/XXXTest.java, Garage/main/impl/XXX.java, Garage/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,所以可能有一些差异(我使用命令行)


编辑 如果我删除它的测试部分: 测试\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);
    }
}

使用以下命令不会出错...所以我想问题出在类路径上,但我该如何解决呢?

javac test\GPSTest.java

【问题讨论】:

  • import main.Main 没有出现在您发布的任何代码中; class Main 也没有;你在package main 中没有任何课程。真正的代码是什么?
  • @EJP Oups。我测试了一些东西,但我忘了重试正确的代码。我编辑了帖子,错误是test\GPSTest.java:6: error: package main.impl does not exist import main.impl.GPS;
  • 那么main/impl/GPS.java 存在吗?
  • @EJP 是的,在 Garage 中:Garage/main/impl/GPS.java (我不在正确的计算机上,所以我不能向您展示......也许我不知道有什么不同没看到,但我检查了很多次)
  • @EJP 我确认,main\impl\GPS.java 存在

标签: java package


【解决方案1】:

我需要在包名中添加 Garage

不可以,但是编译时需要在Garage目录下,这样你就在以下目录树的最前面:

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

【讨论】:

  • 但我在车库里,我有这棵树
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2013-07-11
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多