SQLストアドプロシージャから呼び出して実行するjarファイルがあります。これを行うには、xp_cmdshellを使用しています。xp_cmdshellを使用しているときにjarfileにアクセスできません
私はただ見て、SQL Server Management Studioをスルーこの行を実行しようとしています、私はまだストアドプロシージャを作成していないが、基本的には、ストアドプロシージャの内容は
EXEC master..xp_cmdshell 'java -jar D:\...\...\...\Test_LowerJDK.jar';
だろう私が公式のストアドプロシージャを作成する前にそれが動作するかどうか。しかし、私はそれを実行すると、それは私に次のメッセージを与えます。
jarファイルをDにアクセスすることができません:......... \ Test_LowerJDK.jar
をなぜこれが起こっている私にはわかりません。私は私が望む特定のディレクトリに行くことができなかったので、私はそれを推測しています。そうであれば、そのディレクトリにあるjarファイルを実行できるように、どのようにして特定のディレクトリに移動できますか?
FYI 私はまた、私はCで、コマンドプロンプトを開いてみました、それが
java -jar Test_LowerJDK.jar
により、コマンドプロンプトを通して保存されているディレクトリから、私のjarファイルを実行してみました:と
java -jar D:\...\...\...\Test_LowerJDK.jar
を次のようでした
どちらもうまく動作します。
また、私はを使用してをのxp_cmdshell使用して、私の現在の作業ディレクトリ、
EXEC master..xp_cmdshell 'dir';
を表示しようと、それは私の現在の作業ディレクトリのように思えるCの
ディレクトリがある:\ WINDOWS \ system32に
私はjarファイルをC:\Windows\system32
に貼り付けたくありませんでした。 ight mess things things up?それが私がそれをしなかった理由なのかどうかはわかりません。
試してみるべきこと:1)DBユーザーの権限が正しいことを確認してください。 2)Javaがそのユーザーのパスにあることを確認します。 3)ファイルパスを二重引用符で囲みます。 EXEC master..xp_cmdshell 'java -jar "D:¥...¥...¥...¥Test_LowerJDK.jar"' 4)データベースサーバーへのローカルパスであることを確認します。 –
また、一度にそれらのうちの1つだけを実行してください! :)時々、あなたは本当の解決策を見逃してしまいます。 –
こんにちは@Nick Pfitzner! ありがとうございますが、1)実際に管理者ユーザーを使用しています。以前は別のユーザーを使用していましたが、xp_cmdshellを使用するたびに、私にはアクセス許可がないというメッセージが表示されます。だから、私は既に管理者アカウントを使用しています。 2)については、あなたが何を意味するのか分かりません。しかし、javaのバージョンはコマンドプロンプトに 'java -version'とタイプすると正しく表示されるので、これはOKだと思います。 3)については、パスに二重引用符を入れようとしましたが、「ジャーファイルにアクセスできない」という同じメッセージが表示されます。 – Krish