2011-03-04 84 views
1

當我將Java應用程序作爲利用包裝的Windows服務運行時,除了應用程序試圖解密文件時,一切正常。它產生以下錯誤:將Java應用程序作爲Windows 7服務運行時獲取「GPG錯誤」

GPG error >> code: 2 >> gpg: encrypted with RSA key, ID ########
gpg decryption failed: secret key not available.

當不作爲服務運行時,該應用程序加密和解密文件沒有任何問題。包裝也工作正常。

在Windows註冊表中設置並確認了環境變量,但由於某些原因,系統未查找密鑰所在的目錄Users\AppData\...

這是一個自動化的應用程序,所以沒有密碼來加密或解密文件。

出了什麼問題?系統可能在尋找密鑰?

回答

1

我通過更改服務屬性解決了上述問題。接下來的一步我解決了這個問題。

  1. 在命令行中輸入services.msc,然後按Enter鍵。它將打開服務窗口。

  2. 找到我的服務,然後右鍵單擊,然後單擊屬性

  3. 點擊登錄選項卡,然後單擊Browse(瀏覽)按鈕,此帳戶單選按鈕

  4. 點擊然後輸入對象名稱來選擇我進入我的用戶名我的機器,然後單擊檢查名稱按鈕一次用戶名確認單擊OK按鈕

  5. 輸入密碼和確認密碼,然後單擊應用單擊OK通知對話框

  6. 停止服務,然後重新啓動服務發送加密文件,它的工作原理應該如此。

爲什麼我必須這樣做,因爲當我默認創建的服務是使用Local System帳戶,所有的按鍵和輪廓位於不是我的用戶帳戶。

現在的問題是還是有人喜歡回答:

如何改變或更改本地系統帳戶在Windows操作系統?

+0

很高興聽到它被排序。您可以通過點擊此答案上的向上/向下箭頭旁邊的空白複選標記來接受您自己的答案。 – 2011-03-10 22:57:36

0

將您的鑰匙圈添加到您的C:\ Users \ Default \ AppData \ Roaming \ gnupg文件夾中。顯然,本地系統帳戶從這裏抓住了鑰匙圈。

相關問題