Digamos que tengo dos clases (Bob y Tom) tales que Bob usa a Tom, pero Tom no requiere a Bob. Ambos archivos están ubicados en la misma estructura de directorios.¿Cómo evito la compilación implícita de Java cuando la clase existe en el classpath?
public class Bob {
public static void main(String[] args) {
System.out.println(Tom.MESSAGE);
}
}
public class Tom {
public static String MESSAGE = "Hello World";
}
Si intento para compilar Bob en la manera típica, puedo conseguirlo para compilar implícitamente Tom.java
así ya que se reconoce como una dependencia del Bob.java
. Eso funciona genial
Pero ahora digamos que quiero ubicar a Tom en un archivo JAR. Entonces construyo Tom.java
y coloco los resultados en un archivo JAR: libTom.jar. Ahora compilo con classpath apuntando al libTom.jar
. Desafortunadamente, el compilador ve el archivo Tom.java
y hace que se compile en lugar de usar la clase en libTom.jar
. ¿Hay alguna manera de hacer que el compilador omita la construcción implícita de Tom.java
si la clase se encuentra en el classpath?
Reconozco que este ejemplo es bastante artificial. Tenga la seguridad de que hay un caso de uso más complicado y menos artificial que rodea este problema. Gracias.
Aunque no lo he usado, ¿has probado el indicador "-implicit" para javac? de acuerdo con el resultado de la ayuda: "-implicit: {none, class} Especifica si se generan o no archivos de clase para los archivos de referencia implícita", que suena como lo que quieres. –
¿por qué no es esa una respuesta? @SteveB. – 11684