# Problemas con JabRef y Javas [Closed]

## natrix

Estima gentooza!!!

Ando enfrentando un viejo dilema que tengo con Java y JabRef. Personalmente adoro JabRef, es muy potente, simple y directo. Pero tiene un defecto, está hecho en Java. Cuando quiero instalarlo me saltan todas estas dependencias:

```
# emerge -a jabref

                                                                                                                                                                                               

These are the packages that would be merged, in order:                                                                                                                                         

                                                                                                                                                                                               

Calculating dependencies... done!                                                                                                                                                              

[ebuild  N     ] dev-java/antlr-2.7.7-r2  USE="cxx java -debug -doc -examples -mono -python -script -source -static-libs"

[ebuild  N     ] dev-java/xjavac-20110814

[ebuild  N     ] dev-java/servletapi-2.4-r5  USE="-doc -source"

[ebuild  N     ] dev-java/commons-logging-1.1.1  USE="-avalon-framework -avalon-logkit -doc -log4j -servletapi -source {-test}"

[ebuild  N     ] dev-java/log4j-1.2.16  USE="-doc -javamail -jms -jmx -source" 

[ebuild  N     ] dev-java/xml-commons-external-1.3.04  USE="-doc -source" 

[ebuild  N     ] dev-java/saxpath-1.0-r2  USE="-doc -source {-test}"  

[ebuild  N     ] dev-java/relaxng-datatype-1.0-r1  USE="-doc -source"   

[ebuild  N     ] dev-java/jgoodies-looks-2.3.1  USE="-doc -source" 

[ebuild  N     ] dev-java/jempbox-0.2.0  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/commons-lang-2.6  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/jakarta-oro-2.0.8-r3  USE="-doc -examples -source" 

[ebuild  N     ] dev-java/commons-collections-3.2.1  USE="-doc -source {-test} -test-framework" 

[ebuild  N     ] dev-java/gnu-regexp-1.1.4-r2  USE="-doc -source" 

[ebuild  N     ] dev-java/java-getopt-1.0.13  USE="-doc -source" 

[ebuild  N     ] dev-java/bcel-5.2-r2  USE="-doc -findbugs -source" 

[ebuild  N     ] dev-java/javacup-0.11a_beta20060608  USE="-doc -source" 

[ebuild  N     ] java-virtuals/stax-api-1-r4 

[ebuild  N     ] dev-java/xpp3-1.1.4c-r1  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/xml-commons-external-1.4.01  USE="-doc -source" 

[ebuild  N     ] dev-java/xml-commons-resolver-1.2  USE="-doc -source" 

[ebuild  N     ] dev-java/ant-antlr-1.9.2 

[ebuild  N     ] dev-java/tomcat-servlet-api-4.1.36  USE="-doc -source" 

[ebuild  N     ] dev-java/jrexx-1.1.1-r1  USE="-doc -source" 

[ebuild  N     ] dev-java/qdox-1.6.3  USE="-doc -source" 

[ebuild  N     ] dev-java/concurrent-util-1.3.4-r1  USE="-doc -source" 

[ebuild  N     ] dev-java/trove-2.1.0  USE="-doc -source" 

[ebuild  N     ] dev-java/jgraph-5.12.0.4  USE="-doc -examples -source" 

[ebuild  N F   ] dev-java/sun-jms-1.1-r2  USE="-doc" 

[ebuild  N     ] dev-java/tomcat-servlet-api-6.0.37  USE="-source" 

[ebuild  N     ] dev-java/glazedlists-1.7.0-r1  USE="-doc -source" 

[ebuild  N     ] dev-java/xerces-2.11.0  USE="-doc -examples -source" 

[ebuild  N     ] dev-java/jpf-1.5.1 

[ebuild  N     ] dev-java/microba-0.4.4  USE="-doc -source" 

[ebuild  N     ] java-virtuals/servlet-api-2.3 

[ebuild  N     ] dev-java/xalan-serializer-2.7.1  USE="-doc -source" 

[ebuild  N     ] java-virtuals/servlet-api-2.5-r1 

[ebuild  N     ] java-virtuals/jms-1.1 

[ebuild  N     ] dev-java/xalan-2.7.1  USE="-doc -source" 

[ebuild  N     ] dev-java/avalon-logkit-2.1-r5  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/xpp2-2.1.10-r1  USE="-doc -source" 

[ebuild  N     ] dev-java/xsdlib-20090415  USE="-doc -source" 

[ebuild  N     ] dev-db/hsqldb-1.8.1.3-r1  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/ant-owanttask-1.3.2 

[ebuild  N     ] dev-java/xmldb-20011111-r1  USE="-doc -source" 

[ebuild  N     ] dev-java/asm-1.5.3  USE="-doc -source" 

[ebuild  N     ] dev-java/asm-2.0-r1  USE="-doc -source" 

[ebuild  N     ] dev-java/jaxme-0.5.2  USE="-doc -source" 

[ebuild  N     ] dev-java/dom4j-1.6.1-r4  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/jarjar-0.9  USE="-doc -source {-test}" 

[ebuild  N     ] dev-java/xom-1.2.10  USE="-doc -examples -source" 

[ebuild  N     ] dev-java/aspectwerkz-2.0_rc2-r3  USE="-source" 

[ebuild  N     ] dev-java/cglib-2.1.3  USE="-doc -source" 

[ebuild  N     ] dev-java/spin-1.5  USE="-doc -source" 

[ebuild  N     ] dev-java/jdom-1.0-r4  USE="-doc -examples -source" 

[ebuild  N     ] dev-java/jaxen-1.1.1  USE="-doc -examples -source {-test}" 

[ebuild  N     ] dev-java/jdom-jaxen-1.0-r1 

[ebuild  N     ] dev-java/werken-xpath-0.9.4_beta-r2  USE="-doc -source" 

[ebuild  N     ] dev-java/velocity-1.6.3  USE="-doc -examples -source {-test}" 

[ebuild  N     ] dev-java/jpfcodegen-0.4 

[ebuild  N     ] app-text/jabref-2.6  USE="-doc -mysql" 

```

Lo que pide es simple, instalar el troncal de sun-java. Pero en mi máquina tengo instalado OpenJDK (icedtea) y tengo el GCC con el GCJ y AWT. 

¿Como puedo hacer para instalar JabRef sobre Icedtea y GCJ? ¿Me haría falta instalar otro complemento? No me convence mucho la idea de instalar otro java-vm.

Intenté hacer un mask en sun-jms pero nada...

Gracias!!!!

PD: no manejo java así que no escatimen en destalles  :Smile: Last edited by natrix on Wed Nov 12, 2014 2:28 am; edited 1 time in total

----------

## quilosaq

sun-jms no es la máquina virtual java de sun sino un API para el servicio de mensajes en java. Creo que lo podrás utilizar con tu máquina virtual java (icedtea).

Si lo que te molesta es tener descargar manualmente el archivo (que está relacionado con la licencia de uso que hace el fabricante) puedes utilizar otro API: glassfish-jms-api. Sólo tienes que instalarlo antes o a la vez que jabref 

```
emerge -pv glassfish-jms-api jabref
```

----------

## natrix

Quilosaq, siempre al pie del cañón!!!!  :Very Happy:   :Very Happy: 

Gracias por tus comentarios en java.

El glassfish-jms ya lo había encontrado haciendo un mask a sun-jms, pero el mask era para buscar un camino que no instalara tantas dependencias. No me molesta el zip que hace bajar el fabricante.

Efectivamente, JabRef funciona sin problemas sobre Icedtea. Y esa es mi duda puntual, si ya tengo una máquina virtual, y ya tengo un compilador java (gcj) ¿Cómo puedo instalar jabref sin instalar todas las dependencias de otro compilador java (creo que es el ant)?

O sea, ¿Cómo hacer que portage (u otro medio) me compile jabref con GCJ y así no instalar tantas dependencias?

Gracias!!

----------

## tuxtor

Hola natrix, respondiendo algunas de tus dudas:

1) Puedes consultar con equery porque es que el emerge intenta instalar jms, en este caso, veo que jabref depende de log4j y log4j de jms.

```

equery g --depth=2  app-text/jabref-2.10-r2

 * Searching for jabref2.10-r2 in app-text ...

 * dependency graph for app-text/jabref-2.10-r2

 `--  app-text/jabref-2.10-r2  ~amd64 

   `--  virtual/jdk-1.7.0  (>=virtual/jdk-1.6) ~amd64 

    `--  dev-java/icedtea-bin-7.2.4.7-r1  (=dev-java/icedtea-bin-7*) ~amd64 

    `--  dev-java/icedtea-7.2.5.3  (=dev-java/icedtea-7*) ~amd64 

    `--  dev-java/oracle-jdk-bin-1.7.0.72  (=dev-java/oracle-jdk-bin-1.7.0*) ~amd64 

    `--  dev-java/soylatte-jdk-bin-7  (=dev-java/soylatte-jdk-bin-7*) [missing keyword] 

   `--  dev-java/antlr-3.1.3-r3  (dev-java/antlr) amd64 

    `--  (>=dev-java/java-config-2.1.9-r1) amd64 

    `--  app-arch/zip-3.0-r2  (app-arch/zip) ~amd64 

    `--  dev-java/ant-core-1.9.2  (>=dev-java/ant-core-1.8.2) amd64 

    `--  dev-java/javatoolkit-0.3.0-r9  (>=dev-java/javatoolkit-0.3.0-r2) ~amd64 

   `--  dev-java/fontbox-1.7.1  (dev-java/fontbox) amd64 

    `--  app-arch/unzip-6.0-r3  (app-arch/unzip) amd64 

    `--  dev-java/ant-junit-1.9.2  (dev-java/ant-junit) amd64 

   `--  dev-java/jempbox-1.7.1  (dev-java/jempbox) amd64 

   `--  dev-java/log4j-1.2.16  (dev-java/log4j) amd64 

    `--  java-virtuals/javamail-1.0-r2  (java-virtuals/javamail) ~amd64 

    `--  java-virtuals/jaf-1.1-r1  (java-virtuals/jaf) amd64 

    `--  dev-java/sun-jmx-1.2.1-r3  (dev-java/sun-jmx) amd64 

    `--  java-virtuals/jms-1.1  (java-virtuals/jms) amd64 

   `--  dev-java/spin-1.5  (dev-java/spin) amd64 

    `--  dev-java/cglib-2.1.3  (=dev-java/cglib-2.1*) amd64 

   `--  dev-java/microba-0.4.4  (dev-java/microba) amd64 

    `--  dev-java/jgraph-5.12.0.4  (>=dev-java/jgraph-5.9.2) amd64 

   `--  dev-java/glazedlists-1.8.0  (>=dev-java/glazedlists-1.8.0) ~amd64 

[ app-text/jabref-2.10-r2 stats: packages (29), max depth (2) ]

```

Log4j tiene una use flag para deshabilitar jms asi que puedes intentar deshabilitarlo por ahi si es que algun otro paquete no depende ya de jms

2) Lo de tantas dependencias es relativo ya que como no tienes ningun paqueje java, la más minima dependencia que tenga jabref, a su vez tendrá mas dependencias.

3) ant no es un compilador, es un sistema de automatización de compilación (analogo a grunt, make, cmake) y en este caso antlr es el que depende de ant (jabref a su vez depende de antlr)

4) GCJ no te servira de mucho aca ya que jabref depende de un compilador nivel 7 (java 1.7) y GCJ entro a modo mantenimiento antes de java 1.7, sin embargo oracle-jdk o icedtea tienen compiladores adecuados.

----------

## natrix

Hola tuxtor:

Por más que lo intente no hay forma, siempre termino instalando sun-java. Llegué a la conclusión de que es ir contra portage, o sea, no se puede. Como bien decís, GCJ no sirve para este caso. 

Pedí un imposible así que doy por cerrado el hilo.

Muchas gracias por tu respuesta!!

----------

