2017-10-17 125 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