2011-06-22 25 views
7

Hay un archivo java, que tiene algunos archivos jar de dependencias. Pero ahora, no tengo esos archivos jar, y tengo que compilarlo en un archivo .class.¿Es posible compilar un archivo java sin proporcionar sus dependencias?

¿Es posible hacer esto?


ACTUALIZACIÓN

Gracias por sus respuestas.

Al principio, pensé que podíamos crear algunos stubs para las dependencias faltantes, eso es fácil pero aburrido. Ya que podemos crear los talones sin trozos faltantes para hacer feliz al compilador, ¿por qué no podemos hacer que una herramienta lo haga automáticamente? La herramienta no necesita crear stubs, pero lee el archivo java, recopila información y luego crea los archivos .class.

Pero si las declaraciones de "importación" en el archivo Java contienen "*", que será un problema:

import aaa.* 
import bbb.* 

public class Hello { 
    World world; 
} 

No sabemos si la clase "mundo" está en el paquete "AAA" o "bbb". Si no estamos familiarizados con las dependencias que faltan, incluso no sabemos cómo crear un apéndice para la clase "Mundo".

Pero si las declaraciones de "importación" son claras, creo que es posible, pero tal vez nadie va a escribir una herramienta tan

+0

¿Has probado? – MarcoS

+0

No creo que sea posible –

+0

Mi pregunta es: una vez hecho esto, ¿qué vas a hacer con el archivo de la clase? ¿Cómo puede estar seguro de que el código es correcto si no puede ejecutarlo para probarlo? –

Respuesta

9

Puede volverse loco y crear las dependencias necesarias como talones que no hacen nada excepto mantener al compilador satisfecho.

+0

+1 - No es necesario Sin embargo, para volverse loco, solo coloque el cursor sobre las clases que le faltan en Eclipse y haga clic en "Crear clase 'xxxx'" en el menú contextual.Puede hacer lo mismo con todos los métodos requeridos en clases faltantes. – Qwerky

+0

¿Y cuándo quiero llamar al método real desde el contenedor real? – Gobliins

+0

Necesitaría las dependencias reales allí en tiempo de ejecución, los talones solo serían su compilación, utilizando un marco burlón podría ayudar para la prueba. – Tom

5

No. Lo siento. Necesitarás todas las dependencias en el classpath para compilar.

3

No. Pero podría proporcionar versiones apagadas de los archivos de la clase de dependencia, si se trata de un puñado de clases que utiliza directamente el código que está intentando compilar.

Luego, en teoría, si toma el archivo .class que compila y coloca las dependencias reales en el classpath con él, su aplicación funcionará utilizando las clases de dependencia correctas (no apagadas).

1

Antes de compilar cualquier archivo, siempre busca las dependencias. pero dijiste que no tenías esos frascos !!!

ver si puede eliminar la relación de dependencias para ese proyecto/archivo y luego intentar compilarlo. ¡darle una oportunidad!

Cuestiones relacionadas