I run a Java program with the following command line (Edit: in NetBeans 6.8 project properties)
toto has:"tutu titi"
args is an array of 2 Strings
toto
has:tutu titi
I want (two arguments indeed, the second) args[1]
to be
has:"tutu titi"
How should I do that?
Edit: I have already tried escaping the quotes with backslash from "Arguments" line in Netbeans propject properties, but I get args[1]
has:\tutu titi\
Command-line arguments in Java are used to pass arguments to the main program. If you look at the Java main method syntax, it accepts String array as an argument. When we pass command-line arguments, they are treated as strings and passed to the main function in the string array argument.
Explanation: Infinite number of arguments can be passed to main(). 4.
You can write the public static void main() method with arguments other than String the program gets compiled. Since the main method is the entry point of the Java program, whenever you execute one the JVM searches for the main method, which is public, static, with return type void, and a String array as an argument.
In the command line, the arguments passed from the console can be received in the java program and they can be used as input. The users can pass the arguments during the execution bypassing the command-line arguments inside the main() method. We need to pass the arguments as space-separated values.
This really depends on your shell. You haven't said what operating system you're using. For example, on Windows this will work:
java Test toto "has:\"tutu titi\""
I believe the same thing will work in bash, too.
But if you're asking what you can do within Java to resolve this: nothing. The shell will have parsed the command line before the process was invoked, and you can't undo that parsing.
I had a similar problem in NetBeans and found the solution:
Edit/Add the property "application.args" in your private.properties to this:
application.args='has:""tutu titi""'
Single quotes to mark your "argument" and two double quotes to define one "double quotes".
Use
toto "has:\"tutu titi\""
If adding from NetBeans (7.1.2) Configuration/Arguments dialog field, a single-quote outer and escaped double quote inner worked for me e.g.:
my argument
This has been recognised by netbeans as a bug that won't be fixed!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With