Ich habe die folgenden Ant & lt; java & gt; Aufgabe:
%Vor%Beim Ausführen von Ant schlägt die Ausführung der Task fehl (siehe unten). Wenn ich den wiederholten Klassenpfad kopieren und einfügen und meinen Code über die Befehlszeile mit java -classpath .. ausführen, ist die Ausführung erfolgreich!
In beiden Fällen wird die gleiche Version von java verwendet.
Wie ist es möglich, dass ich ein anderes Verhalten beobachte? Eine java.security.AccessControlException befindet sich im Stammverzeichnis des Stacktrace, aber ich habe meiner Aufgabe Ant java bereits alle Sicherheitsberechtigungen erteilt, einschließlich der MBeanTrustPermission für die Aktion register , die auch im Stack-Trace erscheint.
Trace (wenn unter Ant ausgeführt) ist unten zu finden:
%Vor% Ich hatte ein ähnliches Problem. Überraschenderweise funktionierte ein fork="yes"
in der Java-Aufgabe wie ein Zauber. Ich musste keine Sicherheitsrichtlinien ändern.
Ich würde das versuchen:
%Vor% Ich hatte das gleiche Problem, als ich versuchte, eine MBean mit ant zu registrieren, und die Lösung bestand darin, zu %JAVA_HOME%\jre\lib\security\java.policy
die folgende Zeile hinzuzufügen:
Berechtigung javax.management.MBeanTrustPermission "registrieren";
Verweis: Nachricht von ant-users
Offenbar installiert Ant bei der Ausführung Ihres Programms SecurityManager
und die Art und Weise, wie Ihre JAAS-Sicherheit konfiguriert ist, der Code verfügt nicht über die erforderlichen Berechtigungen, um korrekt ausgeführt zu werden.
Standardmäßig ist kein SecurityManager
installiert, daher wird Ihr Code normal ausgeführt, wenn er direkt von der Befehlszeile ausgeführt wird.
Sie können die Dokumentation für die Java-Aufgabe konsultieren und unter "Berechtigungen" nachsehen.
>