2014-12-07 12 views
6

Kodumda dosya.java açıp JavaParser ile ayrıştırıyorum.Bir Java kaynak dosyasının geçerli olup olmadığı nasıl kontrol edilir (hata içermiyor)?

FileInputStream in = new FileInputStream(".../file.java"); 

     CompilationUnit cu; 

     try { 
      // parse the file 
      cu = JavaParser.parse(in); 
     } finally { 
      in.close(); 
     } 

........ 

file.java: file.java olarak

public class File{ 

    public void ownMethod(){...} 

    public static void main(String[] args){ 

      ownMethod(5); //Note the extra parameter 

    } 
} 

bir hata vardır: usul bir parametre ile ownMethod aramaları main yöntem, ancak ownMethod 0 parametre bekler. JavaParser bu hatayı algılamaz ve bu hata ile file.java dosyasını ayrıştırır. File.java'da hata bulunup bulunmadığını (kodumda) nasıl bilebilirim? Bir java derleyicisi kullanmadan mümkün mü?

+0

Sınıfının küçük harf kullanılarak yazılması gerekir c. :) – Phiwa

+0

teşekkür ederim Phiwa: P Benim kötü – user1951618

+0

Sorun değil, asla görmediğiniz o küçük şeyler. :) – Phiwa

cevap

4

Is it posible without using java compiler?

sayılı Herhangi çözüm, sizin (yeniden?) Eğer henüz-başka kimse derleyici götürecek, icat. & için hata doğrulaması, derleyici işinin önemli bir parçasıdır.

+0

Kuyu IDE bunu açıkça derlemeden doğrulayabilir (evet, aslında derler, ancak arka planda ve asla göremezsiniz, bu yüzden tahmin ederim sayımlar) – MightyPork

+1

@MightyPork Açıkça veya örtük olarak, derleme yapar. Yani ursa'nın anlamı duruyor. – lexicore

+0

Katılıyorum: Temelde derleyiciye ihtiyacınız olan pek çok şey var. Ancak gelecekte JavaParser'ın kendisinde bir doğrulama yapmayı planlıyoruz, dolayısıyla AST'nin geçerli olup olmadığını kontrol edebiliriz. Tam bir doğrulama için, türleri ve yöntem çağrılarını çözen JavaSymbolSolver'ı da kullanmamız gerekir. Temel olarak derleyicide bulduğunuz pek çok şeyi yeniden uygulayın. –

İlgili konular