2016-02-26 101 views
2

我指定类路径失败。这里是我的设置:java神秘的类路径行为

文件:“根/ src目录/你好/ German.java”

package hello; 
    public class German { 
     public void greet() { System.out.println("Hallo"); } 
    } 

我编这 “根”:

> javac root/src/hello/German.java -d root/package 

,其中“根/包/ hello“作为空目录存在。精细。现在我想测试和编写

文件:“根/测试/ testHello.java”

import hello.German; 
public class helloTest { 
    public static void main(String[] args) { 
     German guy = new German(); 
     guy.greet(); 
    } 
} 

我编译

> javac testHello.java -cp ../package 

总之,我有:

  1. root/package/hello/German.class
  2. 根/测试/ helloTest.class

我在 “根/测试/” 执行:

> java testHello      => class not found except. 
> java testHello -cp ../package  => class not found except. 
> java testHello -cp ../package/hello => class not found except. 

然而,复制 '你好' 目录成试验使得存在

  1. 根/测试/你好/ German.class
  2. 根/测试/ helloTest.class

可以执行的 “根/测试/”

> java testHello 

,并在德国迎接友好。不过,我想指定类路径。但是,我不知道为什么'-cp'和'-classpath'不被接受。

+2

类路径(_cp_)指令必须放在主类名称之前。 'java -cp ../package testHello',否则它们将被视为主类的参数,而不是java选项。 – Berger

+0

“java -cp ../package/testHello”抱怨说它无法加载主类“testHello”。 –

回答

1

试试这个:

java -classpath .:../package testHello 

.:../package使用当前的目录和../package的类路径。