簡體   English   中英

具有簡單Web服務器的Java應用程序已導出為JAR

[英]Java application with simple Web Server exported as JAR

我已經使用Java API創建了一個簡單的Web服務器應用程序。
Web服務器按預期方式工作,並且能夠在瀏覽器中獲取HTML頁面。

我正在Windows計算機上開發此Java App。 為了進行測試,我將應用程序導出為JAR,然后在目標設備(Linux Box)上對其進行測試。 在我的應用中,我創建了一個“ webroot”文件夾,並存儲了該Web服務器需要服務的所有HTML文件。

因此,當我創建應用程序的JAR文件時,它將具有“ webroot”文件夾,其中包含所有html文件。 當我在Windows上運行此應用程序時,便可以獲取html頁面。 但是,當我在Linux上以JAR格式運行該應用程序時,則無法檢索html文件。 同樣,當我在JAR之外復制“ webroot”文件夾時,它也起作用了,並且能夠看到HTML頁面在瀏覽器中傳遞。

那么,有什么方法可以訪問jar文件本身中的html頁面,而無需將其復制到外部?

我的項目文件夾結構如下:

/src
  -com.myprj.server -> contains server Java files 
/webroot -> all the html pages
/bin -> jar files as per the above package path 
/myprj.jar -> Project jar file 

因此,上面的jar文件具有webroot文件夾。 從代碼中,我將其訪問為“ webroot / FileName.html”。 如果我將webroot保留在與jar相同的文件夾中,那么它將起作用。

在不了解您實際如何提供內容的情況下,很難說出您做錯了什么,但是您始終可以使用Class.getResourceAsStream()從類路徑訪問資源。 如果您將其作為jar文件運行,那么jar文件的內容也將包含在類路徑中。

要在jar文件之外提供內容,請在類路徑中包含“ webroot”,或創建某種機制來首先嘗試類路徑,然后再嘗試外部路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM