我有一個jar文件,我想從SQL存儲過程調用/運行。爲此,我正在使用xp_cmdshell。使用xp_cmdshell時無法訪問jarfile
我還沒有創建存儲過程還沒有,但基本上,存儲過程的內容是
EXEC master..xp_cmdshell 'java -jar D:\...\...\...\Test_LowerJDK.jar';
我試圖通SQL Server管理運行這行工作室,正好看到如果它在我創建官方存儲過程之前就會起作用。但是,當我運行它時,它會給我以下消息。
無法訪問jar文件d:......... \ Test_LowerJDK.jar
我不知道爲什麼會這樣。我猜測它是因爲我無法訪問我想要的特定目錄。如果是這樣,我怎麼能去我想要的特定目錄,以便我可以在該目錄中運行jar文件。
僅供參考 我試圖從那裏通過
java -jar Test_LowerJDK.jar
而且我試着用C打開命令提示符保存直通命令提示符的目錄中運行我的jar文件:並做了以下
java -jar D:\...\...\...\Test_LowerJDK.jar
兩者都很好。
而且,我試圖顯示使用使用的xp_cmdshell,
EXEC master..xp_cmdshell 'dir';
我當前的工作目錄,好像我當前的工作目錄是C的
目錄:\ Windows \ System32下
我不想粘貼我的jar文件在C:\Windows\system32
因爲我m ight搞砸了嗎?我不確定那就是我沒有這樣做的原因。
需要嘗試的幾件事:1)確保DB用戶的權限正常。 2)確保java在該用戶的路徑中。 3)嘗試將文件路徑放在雙引號中,例如EXEC master..xp_cmdshell'java -jar「D:\ ... \ ... \ ... \ Test_LowerJDK.jar」'4)確保是數據庫服務器的本地路徑; –
另外:一次只做一個! :)有時你會錯過實際的解決方案,如果你去大錘 –
Hi @Nick Pfitzner! 謝謝你,但1)我實際上已經在使用管理員用戶。我以前使用過不同的用戶,每當我使用xp_cmdshell時,都會顯示一條消息,說我沒有權限。所以不,我已經在使用管理員帳戶。對於2),我不確定你的意思。但是,由於當我在命令提示符下鍵入'java -version'時,java版本顯示正常,我認爲這是正常的。對於3),我嘗試在路徑中放入雙引號,但仍然給了我「無法訪問jarfile」的相同消息 – Krish