之前,我解釋我的問題 - 我試圖找到解決方案,已經提出的問題,但他們沒有工作;)資源文件
我想讀取裏面的jar文件,這是另一個項目的依賴關係。該文件位於路徑下
/src/main/resources/driver
項目打包成jar文件。從資源驅動程序包含進JAR採用POM:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>*</include>
</includes>
</resource>
</resources>
此外,當我解開罐子,我可以看到它添加到JAR的根目錄。
我需要做的,是從罐子內複製該文件到一個目錄的磁盤上。它一切正常,只要通過IntelliJ將項目添加爲依賴項目即可。當我將它作爲POM中的依賴項添加時,我得到一個NullPointerException。
,我使用加載該文件看起來像這樣的代碼:調用的getPath時NullPointerException異常:
String sourceFilePath = this.getClass().getClassLoader().getResource(driverFileName).getPath();
我也嘗試過不同的方法:
String sourceFilePath = this.getClass().getResource("driver").getPath();
String sourceFilePath = this.getClass().getResource("/driver").getPath();
String sourceFilePath = this.getClass().getClassLoader().getResource("driver").getPath();
String sourceFilePath = this.getClass().getClassLoader().getResource("/driver").getPath();
但每次嘗試用相同的結果結束()。
我需要的是解決方案,因爲附加爲依賴的項目是UI測試框架。到目前爲止,我正在爲每個需要它們的新項目添加驅動程序,但這需要時間,對於希望使用此框架的人員來說更復雜,並且在發佈新版驅動程序時會造成很大的麻煩。我希望能夠簡單地爲這個框架添加一個Maven依賴,並且能夠使用這個框架內部的驅動。 這裏的問題是我需要設置一個帶有該驅動程序路徑的系統變量。所以一旦需要驅動程序,我試圖將它(代碼是在框架內)複製到外部位置(某些tmp目錄)。
任何想法如何解決呢?
不要使用'this.getClass()的getResource(。 ...',你需要使用一個類從其他jar('ClassInOtherJar.class.getResource(') –
好吧,我改變了這一切,但這段代碼使用的是依賴罐內。確實仍然重要嗎? –
*「,但是這段代碼用在那個相關的jar裏面」*這就是它爲我工作的方式...... –