Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

javac show error without warnings

Tags:

java

javac

I'm using Sun's javac 1.6.0_26. I invoke it like this:

javac -Xlint -encoding UTF-8 

and usually if there are errors only them are displayed. However this code

class Test{
    public static void main(String args[]) {
        java.util.Date d = new java.util.Date();
        system.out.println(d.getDate());
    }

produces both warning and error:

java:5: warning: [deprecation] getDate() in java.util.Date has been deprecated
        system.out.println(d.getDate());
                            ^
java:5: package system does not exist
        system.out.println(d.getDate());

So my question is: how do I make javac show only errors (without warnins) when there are any and all warnings when there are no errors (never both)?

like image 831
ren Avatar asked Oct 15 '11 11:10

ren


2 Answers

There is a standard option in javac -nowarnwhich disable warning messages. You can get more informations from javac-options

like image 195
COD3BOY Avatar answered Oct 09 '22 16:10

COD3BOY


It's a bad idea to ignore the compiler warnings. Most of the time they are really important. Only if you are very sure that you want to ignore a warning you can add an annotation:

@SuppressWarnings("deprecation")
System.out.println(d.getDate());

It's like you are thinking: Let me first fix errors and afterwards the warnings. But I don't think that is a nice way of working. To solve warnings, you might have to change a lot of code, and all your other error-solving work was unneeded because you needed other code. It is always good the look at a problem globally.

like image 35
Martijn Courteaux Avatar answered Oct 09 '22 18:10

Martijn Courteaux