Hace poco tuve que instalar la aplicación jkiwi en varias aulas para los ciclos formativos de peluquería y estética. En los Debian con arquitectura i386 no hubo mucho problema: bajé el paquete .deb de su página y la instalé con esta clase puppet:
class instala_jkiwi {
$version="0.9.5"
$paquete="jkiwi_${version}_ubuntu.deb"
file {"/var/cache/$paquete":
owner => root, group => root, mode => 755,
source => "puppet:///instala_jkiwi/$paquete",
notify => Exec["instala_jkiwi"]
}
exec { "instala_jkiwi":
path => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
command => "dpkg -i --force-confnew --force-overwrite $paquete; apt-get -f -y install ",
cwd => "/var/cache",
unless => "dpkg -l | grep jkiwi | grep $version | grep ^ii",
require => File["/var/cache/$paquete"],
}
file {"/var/home/usuario/Desktop/jkiwi.desktop":
owner => usuario, group => usuario, mode => 755,
source => "puppet:///instala_jkiwi/jkiwi.desktop",
}
}
Cuando lo instalé en los Debian con arquitectura amd64 no hubo problemas hasta la hora de ejecutarlo. Al hacer doble click no hacía nada y al abrirlo desde terminal me daba el error:
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
at utils.GtkStockIconSWT.createImage(GtkStockIconSWT.java:120)
Un error enigmático, afortunadamente aquí y aquí venía la solución, que consiste básicamente en:
- Bajar los fuentes de http://jkiwi.com/download/source/
- Descomprimirlos y editar el fichero src/utils/GtkStockIconSWT.java, reemplazando en las lineas 120, 121 y 128 (Integer) por (Long).
- Descargar de Internet un swt.jar de 64 bits según cuentan aquí.
- Poner el swt.jar nuevo en src//lib/in_use/swt.jar
- Y recompilar:
cd src
javac -classpath ../lib/in_use/metadata-extractor.jar:../lib/in_use/swt.jar @classes
Podemos probarlo con:
java -classpath ../lib/in_use/metadata-extractor.jar:../lib/in_use/swt.jar:. core.Loader
Y si funciona, creamos el jkiwi.jar nuevo con:
jar -cfm ../bin/jkiwi.jar MANIFEST.MF *
Para ahorrar trabajo pongo el swt.jar y el jkiwi.jar ya modificados y preparados por mí para funcionar con amd64:
Una vez descargados en, por ejemplo, /root sólo hay que sobreescribir con ellos los instalados con el paquete:
cd /usr/share/jkiwi/
mv /root/jkiwi.jar bin/jkiwi.jar
mv /root/swt.jar lib/in_use/swt.jar
Y ya estará funcionando para que nos riamos de la gente poniéndoles pelos y maquillajes divertidos. Empieza probando por ti mismo, claro está.
No hay comentarios:
Publicar un comentario