|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
|
[Java] File .jar ed il Classpath nel manifest
Ciao
Come cacchio si setta l'attributo "Class-Path:" del file manifest.mf di un jar, se è parecchio lungo? Inserendo qualche cosa di simile funziona tutto: Class-Path: lib/ant.jar lib/commons-codec-1.3.jar lib/commons-el.jar Ma nel mio caso ho davvero parecchi jar, e quindi la riga diventa troppo lunga: in fase di avvio del file mi compare il messaggio di errore: Exception in thread "main" java.io.IOException: line too long at java.util.jar.Attributes.read(Attributes.java:362) at java.util.jar.Manifest.read(Manifest.java:167) at java.util.jar.Manifest.<init>(Manifest.java:52) at java.util.jar.JarFile.getManifestFromReference(Jar File.java:15 at java.util.jar.JarFile.getManifest(JarFile.java:145 ) Ho trovato questo messaggio su un blog (è vecchiotto però... parliamo di fine 2004) e si parla di come risolvere questo problema http://jroller.com/page/apolci?entry...h_molto_grandi Tuttavia questa soluzione non sembra cmq funzionare. In fase di avvio mi compare il messaggio: Invalid o corrupt jarfile Questo è il mio corrente manifest Codice:
Manifest-Version: 1.0
Main-Class: StartCrawl
Class-Path: lib/ant.jar
lib/commons-cli-2.0-SNAPSHOT.jar
lib/commons-codec-1.3.jar
lib/commons-el.jar
lib/commons-httpclient-3.0.1.jar
lib/commons-lang-2.3.jar
lib/commons-logging.jar
lib/commons-logging-1.1.jar
lib/commons-logging-adapters-1.1.jar
lib/commons-logging-api-1.1.jar
lib/hadoop-0.12.3-core.jar
lib/jakarta-oro-2.0.7.jar
lib/jasper-compiler.jar
lib/jasper-runtime.jar
ib/jets3t-0.5.0.jar
lib/jetty-5.1.4.jar
lib/jsp-api.jar
lib/junit-3.8.1.jar
lib/log4j-1.2.13.jar
lib/lucene-core-2.1.0.jar
lib/lucene-misc-2.1.0.jar
lib/nutch-0.9.jar
lib/resolver.jar
lib/serializer.jar
lib/servlet-api.jar
lib/xercesImpl.jar
lib/xercesSamples.jar
lib/xml-apis.jar
Grazie Ultima modifica di Edde : 09-07-2007 alle 17:34. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
|
Uppo
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Assicurati che al fondo del file ci sia un newline e che tra la fine del nome di un jar e il successivo sulla riga seguente ci siano almeno 2 spazi.
..certo che avrebbero anche potuto strutturarlo meglio il manifest...
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 10-07-2007 alle 10:49. |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
|
Quote:
E riga vuota finale. Visto che non andava poi ho fatto anche diverse prove (tolgo lo spazio lì, ne metto un altro là e cose simili Adesso *sembra* (e qui mi gratto) che abbia risolto il problema, ma in un modo che non può certo considerarsi elegante... la riga del Class-path non può essere molto lunga? Ed io ho scompattato alcuni jar sparsi e li ho ricompattati in jar "tematici": uno che raccolga tutto il pacchetto dei vari commons-logging, tutti quelli di xerces in uno solo e così via... ora i jar sono di meno, e posso metterli su di un'unica riga. Però è una soluzione temporanea... non credo che si possa accettare una cosa simile |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Fai un jar con la seguente classe:
Codice:
import java.util.*;
import java.util.jar.*;
public class Prova
{
public static void main (String[] args)
{
try
{
JarFile jf = new JarFile ("prova.jar");
Manifest m = jf.getManifest ();
Attributes attr = m.getMainAttributes ();
for (Map.Entry<Object,Object> e : attr.entrySet ())
System.out.println (e.getKey () + " = \"" + e.getValue () + "\"");
}
catch (Exception e)
{
System.out.println (e);
}
}
}
Lo vedi subito se il classpath è corretto ... manda l'output su un file e poi editalo.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2005
Messaggi: 395
|
Ciao, quale application server usi per il deploy della tua applicazione?
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:55.




















