From: nishant sonone
Subject: Unable to run gpg command in JAVA

I am porting an existing perl-mason code to java.
I need to create certificates for certain inputs.
The command used on perl-mason was

open(COMMAND, "echo $text | gpg --homedir $ENV{HOME}/.gnupg -s -u \"The
Certificate Key\" |");
my $enc = join('',<COMMAND>);
my $encCert = encode_base64($encrypted);

When i tried to use the dame command in java, its not able to recognize the
input to '-u' option.
I think java is not able to interpret the spaces between the words of input
string  \"The Certificate Key\".

The perl seems reasonable, but what does your java code look like? :)

If you gave the entire command line as a single string, then you're at
the mercy of java's tokenization of the command line.  For example,
the javadoc for java.lang.Runtime says this:

  More precisely, the command string is broken into tokens using a
  StringTokenizer created by the call new StringTokenizer(command) with
  no further modification of the character categories. The tokens
  produced by the tokenizer are then placed in the new string array
  cmdarray, in the same order.

My guess is that `"The', `Certificate', and `Key"', are being treated
as three separate arguments.

Try providing the command as a String[], e.g.

  String cmd[] = {
     "gpg",
    "--homedir",
    System.getProperty("user.dir") + File.separator + ".gnupg",
    "-s",
    "-u",
    "The Certificate Key"
  };

  runtime.exec(cmd);



Steve

_______________________________________________
Gnupg-users mailing list
Gnupg-users@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to