У меня есть файл jar, который я хочу вызвать/запустить из SQL хранимой процедуры. Для этого я использую xp_cmdshell.Не удается получить доступ к jarfile при использовании xp_cmdshell
Я не создал хранимую процедуру, но пока, в основном, содержание хранимой процедуры будет
EXEC master..xp_cmdshell 'java -jar D:\...\...\...\Test_LowerJDK.jar';
Я пытаюсь запустить эту строку через среды SQL Server Management Studio,, просто чтобы посмотреть если он будет работать до того, как я создам официальную хранимую процедуру. Однако, когда я запускаю его, он дает мне следующее сообщение.
Невозможно получить доступ к jarfile D: ......... \ Test_LowerJDK.jar
Я не знаю, почему это происходит. Я угадываю его, потому что я не мог пойти в конкретный каталог, который я хочу. Если да, то как я могу перейти в конкретный каталог, который я хочу, чтобы я мог запустить файл jar в этом каталоге.
FYI Я попытался запустить мой опарника из каталога, где она сохраняется через командную строку с помощью
java -jar Test_LowerJDK.jar
Кроме того, я попытался открыть командную строку в C: и сделал следующее
java -jar D:\...\...\...\Test_LowerJDK.jar
Оба работают просто отлично.
Кроме того, я попытался отображать мой текущий рабочий каталог с помощью xp_cmdshell использованием,
EXEC master..xp_cmdshell 'dir';
И, кажется, как мой текущий рабочий каталог является
Справочник C: \ Windows \ system32
Я не хотел вставлять свой файл jar в C:\Windows\system32
, потому что я м все в порядке? Я не уверен, поэтому я этого не делал.
Несколько вещей, чтобы попробовать: 1) Убедитесь, что разрешения для пользователя БД выполнены. 2) Убедитесь, что java находится на пути для этого пользователя. 3) Попробуйте поместить путь к файлу в двойные кавычки, например. EXEC master..xp_cmdshell 'java -jar "D: \ ... \ ... \ ... \ Test_LowerJDK.jar"' 4) Убедитесь, что это локальный путь к серверу базы данных; –
Также: только один из них за раз! :) Иногда вы пропускаете фактическое решение, если вы идете кувалдой –
Hi @Nick Pfitzner! Спасибо за это, но за 1) Я уже использую пользователя администратора. Ранее я использовал другого пользователя, и всякий раз, когда я использую xp_cmdshell, он отображает сообщение, в котором говорится, что у меня нет разрешения. Нет, я уже пользуюсь учетной записью администратора. Для 2), я не уверен, что вы имеете в виду. Но так как версия java отображается правильно, когда я ввожу 'java -version' в командной строке, я думаю, что это нормально. Для 3) я попытался поместить двойные кавычки в путь, но все же он дает мне то же сообщение «Невозможно получить доступ к jarfile» – Krish