2012-02-02 3 views
4

Я хочу выполнить файл jar с использованием файла политики из моего проекта. мой файл политики:как предоставить грант файлу jar для выполнения другого файла jar

*grant codeBase "file:///D:/xx/yy/zz/-"{ 
    permission java.io.FilePermission 
    "D:/aa/bb/test.jar", "read, write, delete, execute"; 
};* 

мой проект находится в стадии D:/XX/YY/ZZ/папки и я хочу, чтобы выполнить test.jar в этом проекте, но я была ошибка:

доступ запрещен (java.io.FilePermission <> выполнить)

если я изменить файл политики, как это, что это нормально:

*grant codeBase "file:///D:/xx/yy/zz/-"{ 
    permission java.io.FilePermission 
    "<<ALL FILES>>", "read, write, delete, execute"; 
};* 

Но я не хочу, чтобы дать все разрешение на мой проект.

А также в проекте я установить файл политики, как это:

Строка путь = "D: \ аа \ бб \ test.jar";

 System.setProperty("java.security.policy","C:\\policy\\"+"test.policy"); 

    System.setSecurityManager(new SecurityManager()); 

Есть ли какое-нибудь тело, чтобы сказать что-нибудь об этой ситуации? Спасибо ...

+0

Вы используете файловую систему Windows? – Jaec

ответ

0

Это скорее похоже на проблему безопасности файловой системы, чем исключение безопасности Java, вы используете окна или Linux?
Какую файловую систему вы используете? ext2/3/4 или NFTS или fat32?
И самое главное, вы запускаете свою программу с правами администратора, что может потребоваться для предоставления разрешения на выполнение некоторых файлов.

+0

op.system: windows – mst

+0

file sytem: NFTS – mst

+0

мои вопросы немного изменились: я понимаю, что речь идет о команде java. мой код: ProcessBuilder pb = new ProcessBuilder (cmdList); \t process = pb.start(); cmdList похож на «java», «-jar», path В функции «Пуск» есть элемент управления диспетчером безопасности с помощью checkexec(). Исключение выбрасывается оттуда. – mst