2016-08-01 50 views
1

我想从here编译OSX上的pentaho示例。带有'extends'的Java编译.java失败

Sample1.java extends AbstractReportGenerator.java。

我已出口到CLASSPATH在控制台中包括PWD:

export CLASSPATH=/Users/xxx/java-dev/pentaho/:/Users/xxx/java-dev/pentaho/lib/ 

我编AbstractReportGenerator.java成功地利用javac,到同一个文件夹中Sample1.java文件,但是当我尝试始终编译Sample1.java它由于与AbstractReportGenerator相关的3个错误而失败。

对原因和解决方案的任何建议?

文件夹结构:

Working Folder > 
- Sample1.java 
- AbstractReportGenerator.java 
- AbstractReportGenerator.class 
- AbstractReportGenerator$1.class 
- AbstractReportGenerator$OutputType.class 
- lib 
    - pentaho .jar files 

命令:

javac -cp "lib/*" Sample1.java 
Sample1.java:41: error: cannot find symbol 
public class Sample1 extends AbstractReportGenerator 
          ^
    symbol: class AbstractReportGenerator 
Sample1.java:61: error: cannot find symbol 
     final ClassLoader classloader = this.getClass().getClassLoader(); 
             ^
    symbol: method getClass() 
Sample1.java:132: error: package AbstractReportGenerator does not exist 
    new Sample1().generateReport(AbstractReportGenerator.OutputType.PDF, outputFilename); 
                 ^
Note: Sample1.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
3 errors 
+0

是你的类路径中的'AbstractReportGenerator'(编译后)? –

+0

在Windows或Linux上? – immibis

+0

O/S是MAC,类路径是当前工作文件夹,编译类(AbstractReportGenerator.class,AbstractReportGenerator $ 1.class,AbstractReportGenerator $ OutputType.class)与Sample1.java位于同一文件夹中 – crankshaft

回答

0

非常感谢所有的建议,将目标文件夹后,从这个建议@罗曼·沃特纳终于工作了:

javac -cp ./lib/*:./target -d ./target AbstractReportGenerator.java Sample1.java 
0

尝试使用:

javac -cp lib/*:. Sample1.java 
+1

他正试图编译文件,而不是执行它;) –

+0

感谢这是错字:) –

+0

@victor vosa - 谢谢,但那导致3个相同的3个错误。 – crankshaft