Starten Sie ein JAR, indem Sie JAR-Bytes direkt aus einem nativen Graal-Image in den Speicher laden und die Anwendung stJava

Java-Forum
Anonymous
 Starten Sie ein JAR, indem Sie JAR-Bytes direkt aus einem nativen Graal-Image in den Speicher laden und die Anwendung st

Post by Anonymous »

Ich erstelle einen Anwendungsstarter mit dem nativen GraalVM-Image. Der Launcher lädt ein verschlüsseltes JAR herunter, entschlüsselt es im Speicher und muss es starten, ohne jemals die Festplatte zu berühren. Sicherheitsanforderung – der entschlüsselte Anwendungscode sollte niemals irgendwo geschrieben werden. Ist es möglich, das gesamte JAR zu laden?
Was ich versucht habe (alle fehlgeschlagen):
  • Direkter ClassLoader-Ansatz – Funktioniert nicht, natives Image hat keinen Bytecode-Interpreter
  • Einbetten von JVM über JNI – Zu komplex und verschwendet einen ganzen Tag, und es hat nie funktioniert und ich habe nicht gesehen oder verstanden, was falsch war und wo und Ich werde es aufgrund von JNI nicht noch einmal versuchen, es sei denn, einige führen mich an. Technisch möglich, aber es ist ein Albtraum, damit zu arbeiten.
  • Temp-JAR schreiben und erzeugen

    Code: Select all

    java -jar
    [/b] – Funktioniert perfekt, macht aber den gesamten Zweck zunichte (JAR ist auf der Festplatte, wenn auch nur kurz), dies dient derzeit zum Testen meiner App.
Ich bündele ein JRE, was bedeutet, dass der Launcher heruntergeladen wird, wenn er nicht auf dem Computer des Benutzers gefunden wird, genau wie das JAR von meinem Server, damit ich Java-Prozesse starten kann. Ich brauche nur eine Möglichkeit, diesem JVM-Prozess zu sagen: „Hier ist ein JAR im Speicher, lade es“, ohne Dateien zu schreiben.
Wie gehen Unternehmensanwendungen damit um? Spielestarter, IDE-Updater usw. – sie müssen dieses Problem gelöst haben, oder?
Ich liebe Java, aber hier gefällt es mir einfach nicht. Ich kann es nicht zu einem vollständigen nativen Image kompilieren, da einige Bibliotheken es nicht unterstützen, was ich in meinem Jar habe. Außerdem funktionieren alle Methoden zum Laden durch defineClass in IDE, aber ohne JVM können sie nicht in einem nativen Image funktionieren.
Für Vorschläge wäre ich sehr dankbar! Ich brauche wirklich Hilfe von euch allen, Legenden.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post