Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
262 views
in Technique[技术] by (71.8m points)

java - Issue with Command Line arguments which got spaces in it

I have a Java program which I'm executing in a Linux environment through a bash script.

This is my simple bash script, which accepts a String.

#!/bin/bash
java -cp  com.QuoteTester $1

The issue is that the command line argument can be with Spaces or Without spaces.

For example it can be either:

Apple Inc. 2013 Jul 05 395.00 Call   

OR

Apple

My code is:

public static void main(String[] args) 
{
    String symbol = args[0];

    if (symbol.trim().contains(" ")) // Option
    {

    }

    else  // Stock 
    {

    }
}

So the issue is that , when I am trying to execute it this way:

./quotetester Apple Inc. 2013 Jul 05 395.00 Call

its only always going to the else condition that is Stock .

Is there anyway I can resolve this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

When you pass command line arguments with spaces, they are taken as space separated arguments, and are splitted on space. So, you don't actually have a single argument, but multiple arguments.

If you want to pass arguments with spaces, use quotes:

java classname "Apple Inc. 2013 Jul 05 395.00 Call"

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...