2010-07-03 11 views

Respuesta

9

que he recibido el código fuente de un producto de Java ...

Si realmente haya recibido el código fuente de un producto, y todo lo que tienes es archivos JAR, los archivos JAR (que en realidad son archivos ZIP con un sufijo de archivo diferente y un tipo particular de "manifiesto") debería contiene un grupo de archivos con el sufijo de archivo ".java". Debería poder verificar esto usando cualquier herramienta de archivo ZIP.

Si no hay archivos ".java" en los JAR (por ejemplo, solo una gran cantidad de ".class" y otros archivos), no tiene el código fuente del producto. Hacer cambios será realmente muy difícil, dado que usted no es un desarrollador de Java.

Suponiendo que usted está haciendo esto legítimamente (es decir, con el permiso explícito o implícito del desarrollador del producto) usted se ahorrará mucho tiempo si es posible también hacerse con instrucciones de construcción del producto. Por ejemplo, si está construido con Ant, desea el archivo (s) "build.xml".

9

Un jar es análogo a un archivo zip, por lo que pueden contener o no el código fuente que necesita para el desarrollo. Puede leer sobre los archivos jar here.

+0

WinZip o cualquier otro administrador de archivos puede abrir archivos .jar. Es posible que necesite cambiar la extensión a .zip para algunos archivadores. –

+2

* "Un jar es análogo a un archivo zip" * - un archivo JAR ** es ** un archivo ZIP que sigue ciertas convenciones sobre el contenido del archivo. –

5

Normalmente empaqueta archivos .class (compilados) y los distribuye en archivos .jar, pero es posible poner cualquier tipo de archivo que desee (incluido el código fuente) en un archivo .jar. Si necesita cambiar el código en la biblioteca, deberá ver la fuente.

También es posible que los archivos .jar de su proyecto sean bibliotecas de terceros (o propietarias internas) que no necesitará cambiar en absoluto. Es bastante común incluir bibliotecas que acaba de usar sin modificar en su jar. Si el resto del código de la aplicación está accesible, puede modificarlo sin tocar el código de la biblioteca.

+0

Si los archivos jar solo contienen archivos .class, ¿significa eso que no puedo modificar la aplicación? – SharpAffair

+2

Aún puede modificar archivos .class. Es todo un mundo de dolor más duro. –

+0

@Sphynx: Sí, como se señaló, es posible, pero prohibitivamente difícil. Haría todo lo posible para poner mis manos en el código fuente antes de tratar de trabajar solo con los archivos .class. –

2

Cualquier IDE de Java moderno le permite colocar en archivos jar y usar eso como código de la biblioteca. Esto no requiere fuente, etc. Luego puede desarrollar nuevo código, que incorpora cambios.

Si necesita ALTERAR el código dentro de los frascos, sería mucho mejor que tener el código fuente de ese frasco que necesita actualizar y luego trabajar con eso.

Si no tiene el código fuente y necesita cambiar una clase, puede descompilar esa clase usando, p. Ej. JAD a un archivo de Java (tenga cuidado, puede contener errores), y luego trabaje con eso. Solo necesitas tener esa clase en frente del jar en el classpath (a menos que el jarrón esté sellado, y luego tienes una pregunta completamente nueva para stackoverflow).

¿Tiene programadores de Java más experimentados en su equipo, puede pedir ayuda?

0

puede intentar descompilar los archivos jar de nuevo en su fuente, de lo contrario los archivos jar no ayudarán mucho para el desarrollo.

Los archivos jar pueden ayudarle cuando contienen algunas librerías/paquetes/clases que considera esenciales para el proyecto en el que está trabajando . De esta forma, puede agregarlos a su ruta de compilación si está usando Netbeans IDE y utilizarlos sin siquiera mirar a la fuente . Sin embargo, esto funcionará mejor si realiza algún tipo de desarrollo incremental en su proyecto. así, altamente depende de cómo se está construyendo su es decir, el software es incremental o puede que desee modificar lo que has recibido ... para que este último, podría considerar descompilación o pidiendo el código fuente

Cuestiones relacionadas