Can I reference compile time errors?

I'm working on a small IDE for personal use, but I'm having trouble with error handling. I'm using Runtime.getRuntime().exec( ... ) to compile and run java programs. Ultimately telling the system to execute javac.  Also, I'm using a class called RunProcess to redirect stdout and stderr to a JTextArea (my error log window).

When a runtime exception occurs, I'm simply logging the error to the JTextArea as it would be output to the console. However, when a compile time errors occur, I would like to display the errors in an organized tree, rather than the format that it would have been outputed to the console, which would look something like this:

Test.java:12: cannot resolve symbol
symbol  : method setPrefferedSize(java.awt.Dimension)
location : class javax.swing.JLabel
     myLabel.setPrefferedSize(new Dimension(400,250));
             ^1 error

Is there a way to get a reference to some sort of StackTrace, or Exception that I can use to represent this error?  I really don't want to have to go and do a bunch of string parsing on what javac gave me  :P

Is it perhaps possible using another method of compiling? Such as using the com.sun.tools.javac.Main tool, and javac() to compile? I can't find the documentation for that class anywhere, so I can't figure it out.  I can just find code snippits around the web.

Thanks, and I hope that wasn't too confusing.
LVL 2
BreadstickAsked:
Who is Participating?
 
CEHJCommented:
Don't think so ;-)
0
 
CEHJCommented:
You just need to capture the error stream of javac and put those in your errors area
0
 
BreadstickAuthor Commented:
Maybe I wasn't clear.  I can capture the error stream fine, but I don't want to display the errors as javac would display them.  I haven't used an IDE that simply outputs the error in the same format as you would get from javac.  They all display them in an easy to read format, usually one line per error, and usually in a list or tree.
0
Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

 
CEHJCommented:
Just capture it as a String then you can do what you want with it. Write the stream output to a StringWriter
0
 
BreadstickAuthor Commented:
> I really don't want to have to go and do a bunch of string parsing on what javac gave me  :P

Is there any other way?
0
 
BreadstickAuthor Commented:
Ouch, that stinks.  Do you know where I can find the documentation for com.sun.tools.javac.Main then?
0
 
CEHJCommented:
8-)

Not easy to find that doco - Sun classes are 'undocumented'
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.