代码之家  ›  专栏  ›  技术社区  ›  Ccile

Java包和目录

  •  -1
  • Ccile  · 技术社区  · 7 年前

    这可能类似于这个问题: package does not exist error!

    我试着听懂这节课(法语抱歉) https://openclassrooms.com/courses/les-tests-unitaires-en-java

    所以我有下面的树: 车库/测试/XXX测试。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,所以可能有一些不同(我使用命令行)


    编辑 测试\测试GPS。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
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   user207421    7 年前

    我需要在包名中添加Garage吗

    没有,但你需要在目录中 Garage 编译时,您位于以下目录树的顶端:

    main
    main/impl
    main/impl/GPS.java
    main/inter
    main/inter/Option.java
    test
    test/GPSTest.java
    
        2
  •  0
  •   Ccile    7 年前

    问题在于clathpass。我必须用 .; 在路径的其余部分之前:

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