Szenario:
Ich habe ein Applet, das eine .dll verwenden muss. Diese .dll MUSS sich im PATH befinden. Um die .dll über das Applet auf PATH zu bekommen, MUSS der Benutzer, der den Browser ausführt, über Administratorrechte verfügen (in der Regel durch Rechtsklick auf das Symbol Als Administrator ausführen...).
Problem:
Ich möchte, dass es nicht mehr notwendig ist, administrative Rechte zu erwerben.
Die schlechte Idee Ich möchte, dass das Applet die Datei irgendwo im Home-Verzeichnis des Benutzers speichert. Ich würde diesen Pfad gerne zu PATH hinzufügen. Anscheinend kann dies über getan werden:
System.setProperty("java.library.path", <new path>);
try {
// this forces JVM to reload "java.library.path" property
Field fieldSysPath = ClassLoader.class.getDeclaredField( "sys_paths" );
fieldSysPath.setAccessible( true );
fieldSysPath.set( null, null );
} catch (Exception e) {
e.printStackTrace();
init_failure = true;
}
Frage
Ist es eine schlechte Idee, die JVM zu zwingen, dies zu tun? Ist dies mit undokumentierten Methoden / ist es einfach nur hacky?
Andere Bits
Da dies ein Applet ist, kann ich nicht java.library.path über -D Option angeben, richtig?
Dieser Code befindet sich in einem Intranet. Er ist nicht für den durchschnittlichen Internet-Nutzer gedacht.