Mostrar Mensajes

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - chuidiang

Pages: [1] 2 3 ... 381
1
Hola:

Entiendo que te refieres a ajecutar el jar fuera del IDE que uses (eclipse, netbeans, idea o el que sea).

El trozo

Code: [Select]
setIconImage(new ImageIcon (getClass().getResource("../Images/iconoLogo.png")).getImage());
Si usas getClass().getResource(), el fichero tiene que estar dentro del jar, empaquetado junto con los class. Dentro del jar, al usar getClass(), el directorio es el directorio donde esté el fichero .class al que pertenece este código. Desde ahí, habría que seguir el path relativo que has puesto a ver si cuadra. Una forma más sencilla sería poner ahí un path absoluto, estilo

Code: [Select]
setIconImage(new ImageIcon (getClass().getResource("/Images/iconoLogo.png")).getImage());
con lo que dentro del jar debería haber en el primer nivel un directorio Images y dentro el icono.


Por otro lado, los ficheros que referencias por ahi

Code: [Select]
JasperReport archivo = JasperCompileManager.compileReport("Articulos.jrxml");
...
parametros.put("logo", "src/Images/logo_roble.png");

al ser ficheros normales (no dentro del class, por no cogerlos con getClass().getResource(), ni classloader ni esas cosas), deben estar Articulos.jrxml en el mismo directorio en el que este el jar y el logo_roble.png, en el directorio donde esté el jar tiene que haber un directorio src que tenga dentro un directorio Images que a su vez tenga dentro un logo_robles.png.

Si tus imagenes están dentro del jar, echa un ojo a esto https://stackoverflow.com/questions/13598655/how-to-add-image-as-parameter-from-projects-classpath-in-jasper-reports

Saludos.

2
Java JSE / Re: No puedo eliminar el último registro creado en BBDD
« on: Marzo 15, 2019, 08:13:19 pm »
Hola:
No sé qué base de datos estás usando, pero si es una de las de toda la vida (postgres, mysql, oracle, mariadb ... ) casi al 100% que el problema es tú código.

Mira con debugger, en el método eliminar que el id del producto que quieres borrar está bien relleno y ese id está en la base de datos.

Un saludo.

3
Java JSE / Re: Proeblema en transferencia de archivos
« on: Enero 15, 2019, 04:21:55 pm »
Hola:

Cuando lees un array (   n = entrada.read(b) ) no tienes garantía de leer TODOS los bytes del array, sobre todo en socket que los bytes circulan por red y  pueden no haber llegado todavía todos los bytes necesarios para rellenar el array al completo. De hecho, n te está diciendo cuántos bytes has leído y debes usar ese valor de n para saber cuántos bytes hay en el array que han sido leidos.

Deberías hacer algo parecido a esto

Code: [Select]
byte[] b = new byte[8192];
                while ((n = entrada.read(b)) != -1) {
                    salida.write(b, 0, n);   // bytes, empezando en el 0, hasta n
                }

También podias dejarlo como lo tenias, bytes de uno en uno, pero lo que no puedes hacer es usar entrada.ready() para decidir que has llegado al final del socket. Si el byte no ha llegado cuando preguntas, ready() te dira que no hay byte, pero no porque se hayan terminado de enviar, sino porque solo porque no ha llegado todavía.

Saludos.

4
Java JSE / Re: Proeblema en transferencia de archivos
« on: Enero 14, 2019, 05:30:44 pm »
Hola:
Si haces varias pruebas y transmites el mismo fichero varias veces ... ¿siempre tiene el mismo tamaño lo que recibes o cada vez es distinto?
Veo que escribes byte a byte y que lees byte a byte con el ready(). Si el que escribe no lo hace a la suficiente velocidad, es posible que se te corte en cualquier momento. El efecto debería ser que a veces va, a veces no y cuando no va, el fichero recibido será más pequeño, pero unas veces tendrá un tamaño y otras otro.
Saludos.

5
Java JSE / Re: Mantener Foco y Seleccion de Celda al detectar error en valor
« on: Noviembre 21, 2018, 11:12:50 pm »
Hola:

Aquí hay varias alternativas para validar que el campo es correcto, en concreto, la del InputVerifier imipide que se pierda el foco si el campo no es correcto. Echa un ojo a ver si te vale http://chuwiki.chuidiang.org/index.php?title=JTextField_que_solo_admite_digitos

Saludos.

6
Java JSE / MOVED: Ayuda con ejercicios
« on: Noviembre 07, 2018, 01:27:41 am »

7
Hola:

Es fácil de encontrar. Aquí por ejemplo tienes los goal de maven-dependency-plugin https://maven.apache.org/plugins/maven-dependency-plugin/plugin-info.html y lo que hace cada uno.  Pinchando el goal ves los posibles parámetros que tiene.

Saludos.

8
Hola:

El jar se tiene que generar con un fichero de manifiesto que diga cual es la clase main y tiene que tener de alguna forma acceso/saber donde está las librerías (jar) adicionales que necesites.

Aquí tienes varias posibles formas de apañarlo con maven https://www.baeldung.com/executable-jar-with-maven

Saludos.


9
Hola:

Las baja la primera vez, una vez están en tu repositorio local de maven (habitualmente en <tu_home>/.m2/repository), ya no necesita barjárselas nuevamente.

Saludos.

10
Hola:

Tienes que definir un repositorio que sea tu path en disco, algo así

Code: [Select]
<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>file://path/de/tus/jar</url>
    </repository>
  </repositories>
  ...
</project>

y dentro de ese directorio, siguiendo una estructura de directorios de repositorio de maven, dejar tus jar. Por ejemplo, si la dependencia que quieres poner es

Code: [Select]
<groupId>tu.group.id</groupdId>
<artifactId>tuartifactid</artifactId>
<version>1.0</version>

tienes que crear un directorio /tu/group/id/1.0 y meter dentro el jar.

Aquí tienes este ejemplo y un par de opciones más http://roufid.com/3-ways-to-add-local-jar-to-maven-project/

Saludos

11
Java JSE / Re: rarezas del parseFloat y parseDouble
« on: Julio 18, 2018, 01:44:58 am »
Hola:

El problema es el siguiente. Un float son 4 bytes, un double son 8 bytes. En un número finito de bytes no puedes representar todos los valores decimales existentes, que son infinitos. Por ello, a partir de una determinada cifra, suelen haber "problemas" con las cifras que van detrás, "redondeos" extraños.

Con cuatro bytes, tienes números de 7 cifras significativas, a partir de la octava te pueden salir cosas raras. (fijate que tu 9 del final es justo la octava cifra). En un double (ocho bytes), son 15 cifras significativas, tendrías problemas a partir de la 16. Da igual que sean decimales o no, tendrías el mismo problema en la octava cifra de un float si es 0.123456789 como si es 123456789.

En la tabla en https://es.wikipedia.org/wiki/Coma_flotante#Formatos_de_coma_flotante tienes estos reflejado, fijate en la columna dígitos significativos en decimal.

Así que si necesitas más de 7 cifras de precisión, usa double. Y si necesitas más de las 15 que te da el double, tendrías que usar la clase BigDecimal de java.

Saludos.

12
Java: Librerías / Puñetitas con Hazelcast. Map de List
« on: Julio 08, 2018, 05:22:39 am »
Si hago esto

Code: [Select]
Map<String,List<Cosa>> map = hzInstance.getMap("myMap")
map.put("myKey", new ArrayList<Cosa>());
// Hasta aqui todo bien.

map.get("myKey").add(new Cosa());
//Pues no, resulta que map.get("myKey").size() es cero.

// Para que funcione bien hay que hacer esto
List<Cosa> cosas = map.get("myKey");
cosas.add(new Cosa());

// Y hay que añadir la lista entera para que se entere
map.put("myKey",cosas);

No sé si me convence, es fácil olvidarse de este detalle mientras se codifica....

13
Un par de enlaces interesantes que me he encontrado

10 mejores prácticas
5 mejoras prácticas

¿Serán 15 en total?

14
Hola:

Después de borrar mueves todas las filas que hay detrás una fila antes. Pero no "mueves", sino que copias "machacando". La última fila sigue estando porque no la borras de ninguna manera, así que sigue estando.

O rehaces el array con una fila menos, o "marcas" de alguna manera la última como que tiene datos no válidos y no deben pintarse.

Saludos.

15
Java JSE / Re: VALIDAR NÚMEROS DECIMALES
« on: Mayo 03, 2018, 07:14:42 pm »
Hola:

Una vez pones la variable "hayPunto" a true ... nunca más la vuelves a poner a false, por lo que las siguientes llamadas siempre darán que hayPunto.

Saludos.

Pages: [1] 2 3 ... 381
ey