Auswirkungen der alten Version von Java.exe (7.1) mit neuer Laufzeitversion (8.x)

9

Wir haben eine Situation, in der unsere Anwendung eine JRE einbettet. Die Anwendung wird fälschlicherweise mit einem Mashup ausgeliefert (Version 7.x von java.exe und Version 8.x des Rests von JRE).

Ich kann bestätigen, dass der Prozess, der die Version 1.7 java.exe ausführt, die Java Runtime Version 1.8 mit Process Explorer verwendet. Ich bin überrascht, dass die Laufzeitumgebung oder die Binärdatei die Anomalie nicht erkannt hat und die JVM-Erstellung abgebrochen hat!

Was sind die Auswirkungen des gleichen? Sicherheitsprobleme ? Stabilitätsprobleme? Ich habe den Quellcode für java.exe nicht durchgelesen. Von meinen Voruntersuchungen von java.exe binary kann ich sehen, dass es mehr als ein Stub ist. Es ruft 100 verschiedene KERNEL32.DLL-APIs außer USER32.dll, ADVAPI32.dll, COMCTL32.dll auf.

Sicher, wir können (und wir werden) den Fehler beheben. Aber gibt es Auswirkungen auf die verschiedenen aktuellen Produktionssysteme, die die obige Anomalie verwenden? wenn ja, was sind sie?

    
anjanb 15.06.2016, 08:26
quelle

2 Antworten

1

java.exe ist ein einfacher Launcher . Es enthält keinen JVM- oder Klassenbibliothekscode. Seine Hauptfunktion besteht darin, nur eine JRE zu finden und jvm.dll mit den in der Befehlszeile übergebenen Argumenten zu laden.

Sie können eine JVM mithilfe der Aufruf-API starten auch ohne java.exe .

java.c log gibt Auskunft Der Launcher zwischen JDK 7 und JDK 8 ändert sich nicht wirklich Es gibt eine Launcher-Unterstützung für JavaFX-Anwendungen und einige Fixes für eine bessere Validierung der Argumente. Das ist es. Wenn also Ihre Anwendung mit dem JDK 7-Launcher startet, gibt es offensichtlich keine Bedenken.

    
apangin 20.06.2016, 21:51
quelle
3
  

Was sind die Auswirkungen des gleichen? Sicherheitsprobleme ? Stabilität   Probleme?

Alle diese.

Die JVM-Binärdatei (java.exe in Ihrem Fall), die mit ihr gelieferten gemeinsamen Objekte / DLLs und die JAR-Dateien, die die Java-Seite der Dinge implementieren, sind alle in einem kombinierten Paket enthalten, das nicht dafür vorgesehen ist läuft als alles andere als ein kombiniertes Paket.

Bestimmte Listen von Kompatibilitätsproblemen zwischen Java 7 und Java 8 sind bekannte externe Probleme zwischen kohärenten Versionen des gesamten JVM-Pakets.

Sie haben interne Inkompatibilitäten einer inkohärenten Java-Installation zu diesen bekannten externen Inkompatibilitäten hinzugefügt. Es gibt keine Möglichkeit, eine Liste von denen zu bekommen. Es ist fast sicher, dass niemand versucht, solche Dinge im Auge zu behalten.

Sie haben keine Ahnung, was funktionieren soll, was funktioniert, noch wie lange es funktionieren wird, selbst wenn erscheint um zu funktionieren.

    
Andrew Henle 17.06.2016 13:23
quelle

Tags und Links