2012-03-22 19 views

risposta

6

L'idea è che è possibile separare le dipendenze dell'applicazione; nel tentativo di rendere le applicazioni più portabili. L'idea è che è possibile rendere l'applicazione dipendente dallo api.jar durante la compilazione. Quindi, quando si desidera eseguire il programma, è quindi possibile passare al vaso di implementazione appropriato (impl.jar) e al contenitore del gruppo di risorse appropriato (bundle.jar).

Come esempio, supponiamo che la libreria esegua alcune interazioni con il database. Scrivi il tuo codice in modo che faccia riferimento allo api.jar. Supponiamo ora di aver bisogno di lavorare con un tipo specifico di database, ad es. MySQL: aggiungerebbe lo impl.jar specifico per i database MySQL al classpath per farlo funzionare (se è necessario un altro database in un secondo momento, è sufficiente passare quel jar nel classpath).

Il bundle.jar è un po 'più oscuro e non così comune. Questo potrebbe essere usato per fornire impostazioni di configurazione per la libreria. Ad esempio potrebbe essere utilizzato per fornire impostazioni specifiche della lingua, o qualche configurazione più specifica. Nel caso della libreria di database potrebbe essere che l'implementazione è progettata per tutte le versioni di MySQL e il resource bundle jar fornisce file di configurazione che gli permettono di funzionare per una specifica versione di MySQL.

6

Spesso:

  • name-api.jar contiene solo l'interfaccia delle API.
  • name-impl.jar fornisce un'implementazione di tutte le interfacce in nome-api.jar
  • name-bundle.jar fasci tutto con tutte le classi necessarie per eseguire un'applicazione Java.
-1

Non ho mai visto un accordo del genere.

Se il designer ha inserito l'app in tre JAR, direi che sono necessari tutti e tre.

Ma dovresti riconoscere che è solo una scelta fatta dal designer. È possibile che lui/lei possa aver appena creato un singolo JAR con tutto ciò che contiene e che tu non sia il più saggio.

sto cercando di indovinare, ma se si dovesse aprire quei vasi che ci si vede solo interfacce nel JAR API, le implementazioni di quelle interfacce nella JAR impl, e pacchetti di risorse e altri file .properties nel vaso fascio . Provalo e guarda Imparerai qualcosa.

1

api.jar contiene interfacce API. Queste sono interfacce come un contratto che dovrebbe seguire l'implementazione dell'API.

impl.jar è l'implementazione di api.jar. Non puoi semplicemente avere lo impl.jar senza lo api.jar.

bundle.jar è le risorse (se non sbaglio). Quelle sono risorse necessarie per il codice di implementazione necessario per l'esecuzione.