This week's book giveaway is in the OO, Patterns, UML and Refactoring forum.
We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Assertion Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Assertion" Watch "Assertion" New topic


meeta gaur
Ranch Hand

Joined: Dec 05, 2012
Posts: 305

C:\>java -ea
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.

-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A ; separated list of directories, JAR archives,
and ZIP archives to search for class files.
set a system property
enable verbose output
-version print product version and exit
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -no-jre-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
enable assertions with specified granularity
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
load native agent library by full pathname
load Java programming language agent, see java.lang.instrument
show splash screen with specified image

C:\>java SimpleAssert
-1 is not negative.

After enabling assertion why it isn't enable when i ran program ?

If I'm wrong here then, could you please explain me meaning of first point in both snaps.


My one regret in life is that I am not someone else.
- Woody Allen
Matthew Brown

Joined: Apr 06, 2010
Posts: 4541

Try java -ea SimpleAssert . The switch only enables assertions for the current execution. It doesn't mean that all following program runs will have assertions enabled.

The reason why you got all that usage printed out is that your first command, java -ea, doesn't actually do anything. It's telling you you need to provide a class to execute.
meeta gaur
Ranch Hand

Joined: Dec 05, 2012
Posts: 305

Thanks i have tried that but please could you explain me meaning of first point in both snaps ?

  • With no arguments (as in the preceding examples) Enables or disables assertions in all classes, except for the system classes.
  • Matthew Brown

    Joined: Apr 06, 2010
    Posts: 4541

    They don't mean "no arguments to the java command". They're talking about arguments to the switches. Note from the examples that you can provide arguments to that using a colon. But they aren't examples of complete java calls, just the bits they're talking about.

    So you can do this to run SimpleAssert with assertions turned on everywhere:

    java -ea SimpleAssert

    And you can do this to turn on assertions only in a particular package, while running SimpleAssert:

    java -ea:mypackage... SimpleAssert
    I agree. Here's the link:
    subject: Assertion
    It's not a secret anymore!