2009-11-03 18 views
36

voglio aggiornare un file .class in un vaso con uno nuovo. Qual è il modo più semplice per farlo, specialmente nell'IDE di Eclipse?Aggiornamento .class in vaso

+3

Hai provato 'jar --help' –

risposta

52

This tutorial dettagli su come aggiornare un file jar

jar uf jar-file input-file(s) 

dove 'u' significa aggiornamento.

+3

In questo comando: L'opzione u indica che si desidera aggiornare un file JAR esistente. L'opzione f indica che il file JAR da aggiornare è specificato sulla riga di comando. jar-file è il file JAR esistente che deve essere aggiornato. input-file (s) è un elenco delimitato da spazi di uno o più file che si desidera aggiungere al file Jar. – Nishantha

+1

Voglio aggiornare un file di proprietà in una posizione specifica, idealmente dovrebbero esserci due parametri 'source' e' destination'. Per me 'input-file (s)', ma dov'è 'source'? –

+0

@ShashiRanjan hai trovato la soluzione ?? – Dinesh

11

Vuoi farlo automaticamente o manualmente? Se manualmente, un file JAR è in realtà solo un file ZIP, quindi dovresti essere in grado di aprirlo con qualsiasi lettore ZIP. Potrebbe essere necessario modificare prima l'estensione. Se si desidera aggiornare automaticamente il file JAR tramite Eclipse, è possibile esaminare il supporto Ant in Eclipse e osservare lo zip task.

6

Jar è un archivio, è possibile sostituire un file in esso da solo nel gestore file preferito (ad esempio, Total Commander).

0

1) è possibile estrarre il file in una cartella chiamata

jarname.jar

e quindi sostituire il file nella cartella, utile se si sta aggiornando la classe molto durante il debug

2) è possibile estrarre il vaso sostituire il file, allora il vaso di nuovo

3) Aprire il vaso con 7-zip e il drag and drop y la nostra nuova classe per copiare su quella precedente

10

Basta trascinare e rilasciare il nuovo file di classe sul JAR utilizzando 7-Zip o Winzip. È anche possibile modificare un file JAR incluso in un file WAR utilizzando l'icona della cartella principale e fare clic su OK quando 7zip rileva che il file interno è stato modificato

+0

Usando WinZip, devi aprirlo iniziando per primo WinZip, quindi trascina il file jar nella finestra di WinZip. – awe

+1

7z su Windows non rispetta il maiuscolo/minuscolo, ovvero sostituisce CA.class e Ca.class –

-1

Un'alternativa non è quella di sostituire il file .class nel barattolo file. Inseritelo invece in un nuovo file jar e assicuratevi che appaia prima sul classpath rispetto al file jar originale.

Non sono sicuro di raccomandarlo per il software di produzione, ma per lo sviluppo è semplice e veloce.

6
  1. Utilizzare jar -xvf per estrarre i file in una directory.
  2. Apporta le tue modifiche e sostituisci le classi.
  3. Utilizzare jar -cvf per creare un nuovo file jar.
2

Un file JAR è solo un .zip mascherato. La cartella zippata contiene i file .class.

Se siete su MacOS:

  1. Rinominare il file di possedere l'estensione '.zip'. per esempio. myJar.jar -> myJar.zip.
  2. Decomprimere il '.zip' (fare doppio clic su di esso).Apparirà una nuova cartella denominata "myJar"
  3. Trova e sostituisci il file .class con il tuo nuovo file .class.
  4. Seleziona tutti i contenuti della cartella "myJar" e scegli "Comprimi x articoli". NON zip la cartella stessa, solo il suo contenuto

Varie - La compilazione di un singolo file .class, con riferimento ad un vaso originale, su MacOS

  1. Creare un file myClass.java , contenente il tuo codice.
  2. Aprire il terminale da Spotlight.
  3. javac -classpath originalJar.jar myClass.java Questo creerà la classe compilata denominata myClass.class.

Da qui, seguire i passaggi precedenti. Puoi anche usare Eclipse per compilarlo, fare semplicemente riferimento al vaso originale facendo clic con il tasto destro del mouse sul progetto, "Costruisci percorso" -> "Aggiungi archivi esterni". Da qui dovresti essere in grado di compilarlo come un barattolo e utilizzare la tecnica di compressione sopra per recuperare la classe dal barattolo.

0

Modifica delle proprietà/file my_app.properties faccia bicchiere:

"zip -u /var/opt/my-jar-with-dependencies.jar properties/my_app.properties". Sostanzialmente "zip -u <source> <dest>", dove dest è relativo alla cartella di estrazione jar.