2011-06-17 38 views
0

我感覺像一個4歲的人有一片面包與果凍,並要求如何做一個三明治..要求如何做一個三明治..
我已經負責維護一個javaEE網站是由我們的母公司完成的,沒有孤獨者支持我們。我對JavaEE相對來說比較陌生,我試圖弄清楚如何重新編譯需要從站點根文件夾中修改的文件。
我下載了NetBeans來幫助我,但仍然無法弄清楚。我的問題是,Java文件找不到它們依賴的任何包和資源。據我所知,資源在那裏..雖然,我看到一些以「com。」和「javax。」開頭的軟件包,並且我沒有在任何地方看到「com」或「javax」文件夾。 。我相信我的問題與在NetBeans中的項目屬性中設置類路徑有關。我嘗試過,但是我沒有正確執行,或者沒有正常工作。這整個Java編譯對我來說是非常陌生的,如果有人能夠帶領我正確編譯這個網站,那真是太棒了。
我張貼在網站的文件夾層次結構的選取,以幫助:JavaEE編譯文件

site hierarchy

我想在這裏的那一刻專門編譯RecordAdd.java文件。它試圖導入的一些軟件包來自它所在文件夾的父文件夾,即asp,easp。該文件也試圖import com.icesoft.faces.component.*;其中'*'由父包的幾個不同的進口組成。我沒有看到像我提到的com文件夾,但我確實在WEB-INF文件夾中看到lib文件夾中的icefaces.jar文件。我已經嘗試將這些文件夾放在NetBeans Library-Compile category classpath中,但那沒有做任何事情。
我沒有做正確的事,這可能是編譯java項目的基本知識,但我只是沒有得到它。我非常感謝任何幫助,請不要太苛刻。謝謝!

+0

javax僅適用於oracle,因此您不會在包中看到它。 –

+0

那麼在代碼文件中進行此導入的目的是什麼? –

+0

有很多Sun/Oracle提供的庫隨Java一起提供,您必須導入它們才能訪問它們。 –

回答

1

如果項目是在netbeans中創建的,應該很簡單。只需進入文件 - >打開項目。導航到項目所在的位置。你會知道該文件夾是否是一個項目,因爲netbeans識別它並顯示一個不同的圖標,而不是常規的文件夾圖標。一旦你打開你的項目,你可以右鍵單擊編譯該項目。 你自己並不使用java編譯器來編譯項目中的java文件。編譯和構建是通過像ant,maven這樣的工具完成的......它是自動化的。

+0

它最初是使用netbeans編譯的,但我相信開發者拿出netbeans文件進行生產。我做了「Open Project」並打開它,netbeans爲它創建了自己的文件,我試圖通過編譯.java文件來生成一個新的.class文件,在NetBeans中,我構建了這個項目,並且它說它構建得很好,但是我無法運行它,並沒有輸出.class文件,另外,當我在編輯器中打開文件時,它顯示出找不到包的所有錯誤 –

+0

要編譯RecordAdd.java,只需從一個新的Web應用程序項目開始然後在netbeans ide中將src文件夾(圖片最底部的那個文件夾)的全部內容複製到web項目的src文件夾中,然後右鍵單擊項目 - >屬性 - >庫 - >單擊添加jar並導航到WEB-INF導演下的lib文件夾在你的圖片中選擇y並選擇所有的jar(或者如果想知道哪些jar是編譯該特定文件所必需的,那麼一個接一個地完成)。您在構建項目後生成的圖片文件夾下的所有內容都將生成。 –

4

試着找出原始開發者使用哪個IDE。我看到一個表示Netbeans的nbproject文件夾(除非它是你創建的),所以請嘗試在NetBeans中作爲Java EE項目打開項目。我也嘗試在Eclipse中打開它,它具有良好的導入功能,有時可以自行找出類路徑。下載Eclipse的Java EE版本並安裝Web Tools Project。你也可以嘗試看看是否有一個編譯文件爲你編譯並生成一個war文件(比如build.xml)。

+0

儘管nbproject是由我創建的,但最初的開發者確實使用了NetBeans。我有一個build.xml文件。你的意思是用javac.exe編譯它,就像我將一個.java文件一樣? –

+0

不,使用javac編譯它可能很困難,因爲所有的類路徑依賴關係。您可以安裝ant(或從Netbeans中使用它)來編譯webapp。應該有一個編譯和創建戰爭文件的目標。 –

+0

netbeans編譯的build.xml文件很好,但我沒有.war文件的任何地方。事實上,整個項目的構建很好,但不會運行,並且不會吐出任何.class文件(請參閱我對jpredham的回答的評論) –

0

將現有項目導入netbeans是一個半天休息的好方法。 我假設,因爲有一個nbproject目錄,這是通過netbeans,這應該給你一個腿。

  1. 在「打開項目」嚮導,你的應用程序(不一定是源)的頂層應該有一個Web應用程序(的.war)或EE應用三角形一個友好的地球圖標(的.ear )。 如果有的話打開三角形。 Web應用程序可以通過NetBeans與EE應用程序一起打包,因此如果您嘗試編譯的Web App屬於一個,則某些構建屬性可能與其關聯。

  2. 查看文件nbproject/build-impl.xml應該給你提示你的庫文件夾的位置。 確保此路徑在庫頭下的項目屬性中匹配。這些庫可以在項目之間共享,因此很可能不在這個項目目錄結構中,並且僅在該項目中被引用或本地化,在這種情況下,jar會被複制到lib文件夾中。

  3. netbeans可能會在「解決參考問題」或「解決缺少服務器」下的項目上下文菜單中找到(並提供一個微小的錯誤消息)的附加參考或服務器問題。在NetBeans項目中,針對在IDE中正確運行的服務器構建項目。檢查您是否在「工具」 - >「服務器」下配置了要配置的服務器,然後確保該服務器已鏈接到「運行」下的項目屬性中。

這可能無法解決您的所有問題,但是一個好的開始。祝你好運!

+0

當我將項目導入到本地主機時,我創建了nbproject和build.xml文件。我確實看到一個.ear文件,但我相信這是由我創建的,而不是原始編譯。 –

+0

除非它被成功編譯,否則您不會看到.ear文件 – jpredham

+0

當我構建它時,它會生成良好,但它不會爲我想修改的.java文件吐出一個.class文件。另外,當我在編輯器中打開.java文件時,它會顯示我想要導入的所有包的錯誤,但不能。另外,即使它構建得很好,我也無法運行它:「部署期間發生錯誤: –