2017-10-17 341 views
0

我今天遇到一個問題,我想要得到一個java基類的InputStream,並且我的代碼可以在我的個人計算機上正常工作,但是當我在Gitlab上推送代碼時,Gitlab CI失敗,因爲它沒有找到java類。如何正確獲取Java類的InputStream? Gitlab CI失敗

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

我想我的方式來得到InputStream是這個錯誤的原因。

編輯:我希望能夠得到ArrayList.class或String.class或Object.class的InputStream ...或多或少包含在JDK中的所有類。

有沒有辦法解決這個問題?

感謝

+1

真的沒有'java基類的輸入流'這樣的東西,所以不清楚你想要完成什麼 - 你應該在你的問題中描述它。 – pvg

+0

這是否工作? Thread.currentThread()。getContextClassLoader()。getResourceAsStream' – jrtapsell

+0

@jrtapsell它不適用於gitlab CI,只是在我的電腦上 – AlexJones

回答

0

我發現這個問題,這是一個安全問題,在我的.gitlab-ci.yml使用maven的圖像。我使用3.5.0-ibmjava-9圖像,因爲3.5.0-jdk-9是SSL證書的問題。 爲了解決我的問題,我切換到3.5.0-jdk-9-slim它沒有SSL問題,我認爲與內部類安全檢查較低。

感謝您的所有關於安全性的意見。他們幫助我很多:D