Hi I have an executable jar which must return a value. However, it seems the main class must follow this signature: public static void main(String[] args), and since the jar file executes the main class, how do I get this jar file to return a value? By the way, I am using netbeans 7 to generate the jar. Thanks.
The way for a program to return a value is to call System.exit(n), where n is the value you want to return. This value can then be examined by the shell script which called the program; I expect that's what you had in mind when you said your jar had to return a value.
Paul Clapham wrote:The way for a program to return a value is to call System.exit(n), where n is the value you want to return. This value can then be examined by the shell script which called the program; I expect that's what you had in mind when you said your jar had to return a value.
Thanks, I need to return a string though, is there a way to do this?
Why don't you just call some random method from the jar directly? If you don't want to do this, you can execute the jar using a process, and read from the jar's standard output.
Patrick Noah wrote:Thanks, I need to return a string though, is there a way to do this?
Return a string to what? Presumably to something which is "calling" your executable jar. The only things I know which can do that are shell scripts, which can't possibly require a string to be returned. So what's the thing which is calling your jar and wants a string from it?
Ted Quan wrote:My jar file is call from a shell script. I would like this jar to return an int so that I know whether the jar is working or not.
system.exit(); does not work as expect.
in my code, I have system.exit(8);
when it does exit on that line, I do echo $?. It return 0.
Is it because void main(...)?
I change the signature to int main(...), I cannot execute the jar; why?
What do I have to change to make it works?
I realize that I made mistake; I verify that it system.exit() do return the expected integer value & learn that signature void main(...) should not be changed. Thanks!