Llamada a clase java

Tengo una aplicación de la Agencia Tributaria realizada en java. Esta aplicación permite la importación y exportación de datos a través de un fichero de texto plano que, en determinada posición, contiene un código calculado a partir de un algoritmo md5. Empleando el Dj java decompiler, he encontrado la clase y la función que 'sella' este archivo... Mi pregunta es: ¿Es posible realizar una llamada a esta función desde fuera de la aplicación? Y de ser posible, ¿qué método o sintaxis debería emplear?
Si te es de utilidad para la resolver mi duda la aplicación esta disponible en:
http://www.aeat.es/AEAT/Contenidos_Comunes/La_Agencia_Tributaria/Descarga_Programas/Descarga/Java/201/2007/v.1.01/_20107101.exe
La funcion es sello(Strring s, char c) que se encuentra en \lib\Utilidades.jar y la clase en com.aeat.utilidades.FuncionesUtiles.class

1 Respuesta

Respuesta
¿Por qué quieres realizar una llamada a esa función? Más que nada que estas hablando de una aplicación de Hacienda y si los archivos tienen un código calculado será por temas de seguridad.
Hola, lagarto:
Ante todo, gracias por la rapidez de tu respuesta.
El tema es el siguiente: trabajo en una asesoría fiscal, en el departamento de informática. Las declaraciones fiscales para presentación telemática (a través de la página de la aeat) pueden confeccionarse de dos formas: una, empleando los diseños de registros que el dpto. de informática de la agencia nos proporciona y, otra, empleando los programas de ayuda de la agencia, que generan estos ficheros. Estos ficheros, obtenidos por cualquiera de estas modalidades, deben envirase a través del portal de la agencia tributaria, para su validación y tratamiento. Nosotros preferimos emplear el segundo método, pues nos ahorramos toda la programación para la generación de los archivos.
Ahora viene la razón de la consulta anterior: los programas de ayuda tienen una utilidad para traspasar la información introducida de un equipo a otro o realizar copias de seguridad, exportando el fichero y luego importándolo. Este es el método que empleamos. En la version actual, en la posición 11 del fichero exportado, insertan un código generado a través de un hash md5 para, como es lógico, impedir la alteración del contenido del archivo, pero, en nuestro caso, nos impide la importación del la información gererada por nuestro programa de contabilidad.
El año pasado, ya pusieron este sistema para el modelo 390, pero conseguimos calcular el hash y así agilizar nuestro trabajo, pero este año nos lo han complicado un poquito.
Es por este motivo que estoy solicitando ayuda, pues el java no es mi fuerte, Yo empleo vb6 y vb .net.
Confío en recibir tu ayuda.
Un saludo
Bueno, Lagarto.
La consulta que te realicé ya la he solucionado. He creado una clase java con eclipse y he introducido una referencia a las librerías que realizaban el calculo del hash. En tiempo de ejecución me funciona de fábula. Ahora mi pregunta es...
Quiero empaquetar el proyecto como un archivo .jar con la clase nueva que he creado y que también incluya los dos archivos .jar que contienen las funciones que necesito, para distribuir todo junto. El problema debe estar en que no tengo bien definido el class-path, porque en tiempo de ejecución no me encuentra las funciones.
¿Me podrías echar un cable?
Si necetitas que te pase el archivo me lo dices.
Un saludo
Mejor que me pases el archivo o peques el contenido del archivo manifest para ver como lo tienes definido.
El jar que has montado a mi me dice que está dañado o corrupto cuando lo ejecuto. Lo he generado de nuevo con lo que más pasado en el zip y lo he ejecutado dándome una respuesta:
C:\Dani\hashcalc\bin>java -jar hashcalc2.jar pepe 50
pepe -> 1797C4E54698X
Has de tener en cuenta que en el mismo sitio donde tengas el jar, has de tener la carpeta "lib" con los 2 jars extras que utilizas.
El archivo jar lo he generado con la instrucción: jar cvfM hashcalc2.jar *
desde el directorio "bin" de tu proyecto.
Si quieres que te pase el archivo que he generado, mandame tu e-mail para pasártelo.
Perfecto!
Ahora, abusando un poco más de tu tiempo, mi pregunta es:
¿Es posible modificar el MANIFEST.MF de forma que no tenga que crear la estructura de directorios? Quiero decir, si es posible realizar llamadas a las funciones de las clases contenidas en los archivos auxiliares .jar, estando éstos, a su vez, contenidos dentro de hashcalc.jar.
Un saludo...
Lo que dices creo que no es posible. Lo único que podrías hacer es descomprimir todos los jars, y empaquetar todas las clases en un mismo jar. No es muy limpio, pero es una solución a lo que tu pretendes.
Hola de nuevo.
He estado leyendo que el java estándar no soporta jars dentro de otros jars, pero que existe un técnica, a través de Jar Class Loader que sí lo haría posible.
¿Sabes algo de esto?
Gracias
¿Sería posible realizarlo introduciendo los siguientes encabezados en el manifest?
"DynamicImport-Package"
"Export-Package"
¿Otra solución sería crear un .exe través de un complidador de java nativo?
Lo siento, pero nunca he utilizado lo del Jar ClassLoader que comentas.
Hay software que te permite crear una instalación de las aplicaciones y de esta manera podrías tener un solo archivo "setup.exe" por ejemplo, que al ejecutarlo te cree la estructura de directorios que deseas. Es una idea.
En mi empresa utilizamos el InnoSetup, pero también está uno llamado InstallAnywhere, ... y otros que encontraras por la red.
Buenas de nuevo:
Únicamente te escribo para decirte que ya lo he solucionado. He creado un archivo compilado con exemsión .exe. El problema es que pasa de pesar 43k a 260k, pero es un mal menor.
Muchas gracias por tu interés y tu ayuda.
Un abrazo,
Deberías puntuar y finalizar la pregunta.
Mi puntuación es REGULAR. Realmente el interés ha residido en la premura de las respuestas y no en la calidad del contenido de éstas. De todos modos, no hera mi intención que realizaras mi trabajo, sino que me orientaras en la dirección adecuada.
De todos modos, te quedo muy ageradecido por tu tiempo.
Recibe un cordial saludo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas