2012-02-20 6 views
5

EclipseのJavaコンパイラの機能は少しわかりますrun it from the command lineです。EclipseのJavaコンパイラは、コマンドラインから実行したときに異なるスタックトレースを生成します

これはうまくいきます(最新リリースを使用するためにplexusコンパイラにパッチを当てた後)。

私の問題:コマンドラインからコードをコンパイルすると、スタックトレースが異なります。私はIDEでコンパイラを実行すると、例えば、私はこの出力を得る:

 at com.some.Foo.method(Foo.java:312) 

が、私はコマンドラインからコードをコンパイルするとき、私はこれを取得:ここで何が起こっている

 at com.some.Foo.method(com.some.Foo:312) 
          ^^^^^^^^^^^^ 

を? ?? javapを持つクラスファイルを分析

が得られます。これを引き起こす可能性がありますどのような

SourceFile: "Foo.java" 

SourceFile: "com.some.Foo" 

任意のアイデア?

+0

おそらくあなたは夢の$ CLASSPATHを設定していますか? – Don

答えて

0

私はパッチを当てましたplexus-compiler-eclipse(POMに3.7/Heliosコンパイラを含めるようにパッチを当てました)。

public char[] getFileName() 
    { 
     return className.toCharArray(); 
    } 

public char[] getFileName() 
    { 
     return sourceFile.toCharArray(); 
    } 
1
$ cat baz/Bar.java 
class Foo { 
} 

$ java -jar eclipse/plugins/org.eclipse.jdt.core_3.8.0.v_C19.jar baz/Bar.java 

$ javap -c baz/Foo.class 
Compiled from "Bar.java" 
... 

これは面白いですが、それは私のマシンで動作しますか?

Win7、Java 7、Eclipse 3.8.0(それ自体をIndigoとして識別する、20110615-0604)。

+0

+1ありがとうございました。 –

1
これは、神経叢、コンパイラ日食バージョン1.9.1で修正されているようだ

(または多分次のようになります。クラスEclipseJavaCompiler.CompilationUnit

は、このコードがあります1.9.1と1.7の間のいくつかの他のバージョン)

関連する問題