2012-04-15 13 views
4

Ich habe RMI-Anwendung, also muss ich Policy-Dateien verwenden.Sicherheitsrichtlinie Dateien und jar

meine Richtliniendatei ist einfach (conf.txt):

grant { 
    permission java.security.AllPermission; 
}; 

Ich habe keine Probleme meine Anwendung von Eclipse läuft. Ich habe hinzugefügt: -Djava.security.policy = conf.txt zu den VM-Argumenten.

Was ich tun möchte, ist eine JAR-Datei zu erstellen. Ich habe es als Runable JAR-Datei von Eclipse gemacht und ich habe einige Probleme damit. Ich versuche es so zu laufen:

java -Djava.security.policy=C:\Users\myuser\proj\conf.txt -jar C:\Users\myuser\proj\proj.jar 

ich das gleiche Ergebnis wie ohne -Djava.security.policy Option.

mein Code:

System.setProperty("java.security.policy", "./conf.txt"); 
... 
if (System.getSecurityManager() == null) { 
      System.setSecurityManager(new SecurityManager()); 
     } 

Wie kann ich diese Arbeit machen? Es wäre noch besser, wenn ich muss -Djava.security.policy nicht nur passieren:

java -jar myprog.jar 
+1

Was ist die Frage hier? Sie legen die Richtlinie im Code fest, sodass Sie das Argument in der Befehlszeile nicht benötigen. Führen Sie es mit -Djava.security.debug = Zugriff aus, es ist nicht möglich, genau zu sehen, was vor sich geht. – EJP

Antwort

2

Für den Anfang entfernen System.setProperty("java.security.policy", "./conf.txt"); von Ihnen Code. Es überschreibt den Wert, den Sie in der Befehlszeile festgelegt haben, und dieser enthält den vollständigen Pfad und könnte funktionieren. In jedem Fall testen Sie den Effekt dieser Befehlszeile nicht, wenn Sie System.setProperty im Code haben.

+0

Ja, das war der Fall, ich habe es später herausgefunden, danke. Ich habe nicht viel Erfahrung mit Java und ich brauche nur ein Projekt zu beenden, danke :) – wisent