2011-02-04 106 views
1

我是新來的java,我花了幾個小時來解決這個問題。我會非常感謝任何能夠幫助我的人。java編譯和運行時庫

這是問題所在。

  1. 我的項目,比如項目A,需要一個 一堆庫的編譯,但我 不認爲我需要一個庫調用 LibraryB.jar。因此,項目 在類路徑中沒有庫B 的情況下編譯正確。
  2. 在運行時,程序退出 ,沒有任何錯誤消息。我不 知道原因,直到我把 LibraryB.jar在classpath中,當我運行 我的項目

誰能告訴我,爲什麼發生這種情況?據我所知,在Java中,如果我引用LibraryB.jar,它將需要在編譯和鏈接時。也許我錯了。

回答

1

缺乏具體的例子,我只能給你一個高層次的概述:

如果你的項目使用LibraryA的依賴LibraryB但在它的界面(實際上並沒有公開任何LibraryB的類,即它僅使用它內部),那麼你可以很容易地進入你只需要LibraryA編譯的情況,但需要LibraryB來真正運行你的代碼。

如果您的應用程序在沒有錯誤消息的情況下退出,那麼這往往是您自己的錯,往往不是。特別是對於人們對Java,一個常見的原因是空catch -blocks(不這樣做!):

try { 
    someCodeThatCanThrowAndException(); 
} catch (Exception e) 7 
    // nothing 
}