sábado, 4 de septiembre de 2010

Manifest.MF - java.io.IOException: line too long

Al tratar de crear el jar de mi proyecto, especificando Main-Class y Class-Path me arrojaba el siguiente error
jar -cfm programa.jar Manifest.txt
java.io.IOException: line too long
at java.util.jar.Attributes.read(Attributes.java:362) 
at java.util.jar.Manifest.read(Manifest.java:182) 
at java.util.jar.Manifest. <init> (Manifest.java:52) at sun.tools.jar.Main.run(Main.java:151)
at sun.tools.jar.Main.main(Main.java:1149)
En el campo Class-Path se colocan todos los jar que necesito, adicionales, para ejecutar mi programa, cada jar separados por espacio, pudiendo decir path_relacional/otrojar.jar, como lo dice la documentación de java.

Pero al ejecutar el comando y pasarle el archivo para crear el manifest, me arrojaba el error anterior, busque en internet el error y no conseguí la solución, solo más personas con el mismo problema, pero por pura casualidad mis compañeros de trabajo y yo vimos como lo hace el Netbeas y notamos lo siguiente:

Las lineas donde se colocan los jar son de tamaño fijo, y la siguiente linea donde continua colocando los jar comienza con un espacio en blanco.

Como en el archivo siguiente "Manifest.txt"
Manifest-Version: 1.0
Class-Path: lib/abeilleforms/formsrt.jar lib/apache-http-client/common
s-codec-1.3.jar lib/apache-http-client/apache-mime4j-0.6.jar lib/apac he-http-client/commons-codec-1.3.jar lib/apache-http-client/commons-l ogging-1.1.1.jar lib/apache-http-client/httpclient-4.0.jar lib/apache -http-client/httpcore-4.0.1.jar lib/apache-http-client/httpmime-4.0.j ar lib/axis2/annogen-0.1.0.jar lib/axis2/axiom-api-1.2.7.jar lib/axis 2/axiom-impl-1.2.7.jar lib/axis2/axis2-adb-1.4.1.jar lib/axis2/axis2- java2wsdl-1.4.1.jar lib/axis2/axis2-kernel-1.4.1.jar lib/axis2/backpo rt-util-concurrent-3.1.jar lib/axis2/commons-codec-1.3.jar lib/axis2/ commons-httpclient-3.1.jar lib/axis2/commons-logging-1.1.1.jar lib/ax is2/log4j-1.2.15.jar lib/axis2/neethi-2.0.4.jar lib/axis2/wsdl4j-1.6. 2.jar lib/axis2/wstx-asl-3.2.4.jar lib/axis2/XmlSchema-1.4.2.jar lib/ hsqldb/hsqldb.jar lib/jcalendar/jcalendar-1.3.3.jar /lib/jcalendar/lo oks-2.0.1.jar lib/toplink/toplink-essentials.jar lib/toplink/toplink- essentials-agent.jar Created-By: 1.6.0_0 (Sun Microsystems Inc.) Main-Class: MiClaseMain
Al ejecutar nuevamente
jar -cfm programa.jar Manifest.txt
se creó el jar sin ningún problema

Error al depurar aplicaciones de eclipse en debian squeeze

FATAL ERROR in native method: JDWP No transports initialized,
ERROR: transport error 202: connect failed: Conexión rehusada ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit erro
Es un bug en debian en el archivo
/etc/sysctl.d/bindv6only.conf 
Donde aparece
net.ipv6.bindv6only = 1 
Provoca que el jdk no pueda conectarse con el java debugger
Hay que setearlo a 0
Solución: como root escribir
sed -i 's/net.ipv6.bindv6only\ =\ 1/net.ipv6.bindv6only\ =\ 0/' \/etc/sysctl.d/bindv6only.conf && sudo invoke-rc.d procps restart