Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-1238383

Runtime.exec() doesn't parse quotes correctly

    XMLWordPrintable

    Details

    • Subcomponent:
    • CPU:
      sparc
    • OS:
      solaris_2.4

      Description

      I hava a program which does an exec of another java program. I get different
      results if I run it from the shell. The problem is that exec() doesn't appear to
      respect quotes as meaning one argument. Here is the command being execed
      and below I'll include the program it is execing.

      /net/ubetm/export/ubetm9/boris/dev3/JDK/build/bin/java -classpath .:/home/foley/projects/classes:/net/ubetm/export/ubetm9/boris/dev3/JDK/build/classes:/tmp Frame_0 "hi there"

      Frame_0.java
      -----------
      public class Frame_0 {
         public static void main (String args []) {
            int i, count;

            count = args.length;

            if (count > 0) {
               System.out.println("count = " + count);
               for (i=0; i<count; i++) {
                  System.out.println(args[i]);
               }
            }
            else {
               System.out.println("No args");
            }
         }
      }

      From the shell, I get
      count = 1
      hi there

      and from the exec, I get
      count = 2
      "hi
      there"

        Attachments

          Activity

            People

            Assignee:
            djbrown David Brown (Inactive)
            Reporter:
            duke J. Duke (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: