我有一个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