2012-03-30 159 views
0

我有一個程序,我正在運行,它提出了命令提示符屏幕,我給它我的參數,但然後它要求輸入密碼。我向它發送一個密碼,但我得到一個錯誤,以爲密碼是以前的參數的一部分,這裏是我的一些代碼:命令行提示輸入密碼,無法使用java eclipse發送密碼

Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"" + CD + AND + Keytool + Genkey + Keyalg + Keysize + Alias + Validity + Keystore + "/K && " + Password); 

錯誤是「非法選項密碼」

什麼想法?

我想我需要使用outputstreamwriter,但我不太清楚如何。

謝謝

+1

您是否試過只是打印從字符串添加中獲得輸出,並查看看起來是否正確?我建議你從那裏開始。 – PearsonArtPhoto 2012-03-30 14:54:08

+0

我確信你的密碼是'password'。現在,我要破解你:) – 2012-03-30 14:58:46

+0

是的,它看起來是對我來說,我不得不在第二K之前添加一個空間,但它看起來很好。仍然提示我與非法選項錯誤 – 2012-03-30 15:00:30

回答

0

難道你不需要終止公開報價嗎?

Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"" + CD + AND + Keytool + Genkey + Keyalg + Keysize + Alias + Validity + Keystore + "/K \" && " + Password); 

甚至密碼後,也許

Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"" + CD + AND + Keytool + Genkey + Keyalg + Keysize + Alias + Validity + Keystore + "/K && " + Password + "\""); 
+0

第一種工作,它促使我輸入密碼 – 2012-03-30 15:08:20

+0

我認爲你應該把'exec'內的所有東西放到一個字符串中,打印出來並看看它是否有效。 – adarshr 2012-03-30 15:09:37

+0

我查過了,它是有效的 – 2012-03-30 15:15:15

0

你應該做到以下幾點:

  1. 從代碼
  2. 刪除密碼輸入密碼時,它會告訴你
+0

是的,我想以編程的方式做到這一點雖然 – 2012-03-30 15:09:01

+0

以編程的方式做它甚至可能嗎? – 2012-03-30 15:12:23

+0

即使您這樣做了,它也會再次檢查一致性,這是標準平臺中安全機制的工作方式。所以不需要通過編碼來包含密碼,以獲得更好的性能實踐! – GingerHead 2012-03-30 15:20:10