2012-02-20 14 views
5

से चलाते समय अलग-अलग स्टैक निशान उत्पन्न करता है ग्रहण के जावा कंपाइलर की एक छोटी सी जानकारी यह है कि आप run it from the command line कर सकते हैं।ग्रहण के जावा कंपाइलर कमांड लाइन

यह अच्छी तरह से काम करता है (नवीनतम रिलीज का उपयोग करने के लिए प्लेक्सस-कंपाइलर को पैच करने के बाद)।

मेरी समस्या: जब मैं कमांड लाइन से कोड संकलित करता हूं तो स्टैक निशान भिन्न होते हैं। उदाहरण के लिए, जब मैं आईडीई में संकलक चलाने के लिए, मैं इस उत्पादन प्राप्त करें:

 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

शायद आपके पास एक शानदार $ क्लासस्पैट सेट है? – Don

उत्तर

0

मैं एक पैच plexus-compiler-eclipse का उपयोग कर रहा हूं (मैंने पीओएम को 3.7/हेलीओस कंपाइलर शामिल करने के लिए पैच किया है)।

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" 
... 

यह मजेदार है, यह मेरी मशीन पर काम करता है?

विन 7, जावा 7, ग्रहण 3.8.0 (खुद को इंडिगो, 20110615-0604 के रूप में पहचानता है)।

+0

+1 धन्यवाद, जिसने मुझे सही रास्ते पर ले जाया। –

1

(या शायद यह जाल-संकलक-ग्रहण संस्करण 1.9.1 में निर्धारित किया गया है लगता है होना चाहिए:

वर्ग EclipseJavaCompiler.CompilationUnit में, वहाँ इस कोड है 1.9.1 और 1.7 के बीच कुछ अन्य संस्करण)

संबंधित मुद्दे