2017-10-17 1 views
0

Ich habe heute ein Problem erlebt, ich möchte einen InputStream einer Java-Basisklasse bekommen und mein Code funktioniert auf meinem PC richtig, aber wenn ich den Code auf Gitlab drehe, schlägt Gitlab CI fehl, weil es das Java nicht findet Klasse.Wie bekomme ich einen InputStream einer Java-Klasse richtig? Gitlab CI schlägt fehl

try (InputStream inputStream = this.getClass().getResourceAsStream("/java/lang/String.class")) { 
    System.out.println(inputStream); //Displays null on gitlab CI only 
} 

Ich denke, mein Weg, um den InputStream zu bekommen, ist die Ursache für diesen Fehler.

EDIT: Ich möchte in der Lage sein, einen InputStream von ArrayList.class oder String.class oder Object.class zu erhalten ... Mehr oder weniger alle Klassen in JDK enthalten.

Gibt es eine Möglichkeit, das zu beheben?

Dank

+1

Es gibt wirklich nicht so etwas wie 'ein Eingangsstrom einer Java-Basisklasse', also ist es nicht klar, was Sie erreichen wollen - Sie sollten das in Ihrer Frage beschreiben. – pvg

+0

Funktioniert das? 'Thread.currentThread(). GetContextClassLoader(). GetResourceAsStream' – jrtapsell

+0

@ jrtapsell Es funktioniert nicht auf gitlab CI, nur auf meinem Computer – AlexJones

Antwort

0

fand ich das Problem, es ist ein Sicherheitsproblem mit dem Maven-Bild in meinem .gitlab-ci.yml verwendet wurde. Ich verwendete 3.5.0-ibmjava-9 Bild, weil 3.5.0-jdk-9 als ein Problem mit SSL-Zertifikaten. Um mein Problem zu lösen, wechselte ich zu 3.5.0-jdk-9-slim, die kein SSL-Problem hat und ich denke, eine niedrigere Sicherheitsprüfung mit internen Klassen.

Vielen Dank für alle und für Kommentare zur Sicherheit. Sie helfen mir sehr: D