2010-08-20 29 views
71

Estoy confundido con estos dos términos.Cuál es la diferencia entre Class Path y Build Path

¿Qué debo hacer para crear un archivo en la carpeta src de Spring MVC Project? Cuando creo usando un objeto File crea el archivo dentro de C: \ SpringSourceTool ... Supongo que esto es ClassPath ¿verdad?

¿Cómo puedo obtener la carpeta applicationcontext o la raíz de la aplicación?

Respuesta

80

La ruta de compilación se utiliza para crear su aplicación. Contiene todos sus archivos de origen y todas las bibliotecas de Java que se requieren para compilar la aplicación.

El classpath se utiliza para ejecutar la aplicación. Esto incluye todas las clases y bibliotecas de Java que se necesitan para ejecutar la aplicación Java. Un Classpath es obligatorio, la ruta predeterminada es . que se utiliza si la máquina virtual Java no puede encontrar una ruta definida por el usuario. (CLASSPATH variable de entorno, -cp bandera o Class-Path: atributo en un manifiesto jar)

+0

Pero javac toma un argumento de ruta de clase. ¿Podría decirse que este parámetro "sobrecargado" para especificar la ruta de compilación? – aioobe

+2

No. El argumento _classpath_ es una pista para el compilador de lo que debería esperar estar disponible/provisto en el tiempo de ejecución, ya que no construye todas las clases que usa usted mismo (por ejemplo, JFC, Bibliotecas, ...). _buildpath_ contiene dependencias fuente y/o fuente/compiladas y dónde buscarlas. –

+0

Al desarrollar un complemento, agregué todas las bibliotecas necesarias al classpath, pero no pude importar nada. Eclipse no los vio hasta que los agregué para construir el camino. – Bax

3

Cada proyecto de Java tiene su propia ruta de compilación que especifica todas las dependencias necesarias para compilar el proyecto. Esas dependencias pueden provenir de otros proyectos de Java en el espacio de trabajo, de archivos .jar de archivos Java o de carpetas que contienen archivos .class.

En el entorno CLASSPATH solo necesita especificar archivos .class (es decir, jar, zip, dentro de jar, archivos zip encontrará solo clases Java), es decir, está ayudando a Java Virtual Machine (JVM) a encontrar archivos de clase Java

Además, ¿qué debo hacer para crear un archivo en la carpeta src de un Proyecto Spring MVC? Cuando creo un archivo usando objeto se crea el archivo dentro de C: \ SpringSourceTool ...

Aquí es donde se inició la JVM, si desea crear el archivo en otro lugar, utilice la ruta relativa de aquí .

Ver this y this para obtener más información.

+0

Ni siquiera mencionaste la ruta de compilación en tu respuesta. – aioobe

+0

Gracias @aioobe, me perdí inicialmente, editado ahora. – pavanlimo

23

La ruta de clase se utiliza en tiempo de ejecución para cargar clases y recursos compilados.

La ruta de compilación se utiliza en tiempo de compilación para encontrar las dependencias necesarias para construir su proyecto.

+0

¿Podría decir que la ruta de clase se usa para localizar archivos '.class' (y otros recursos compilados), mientras que la ruta de compilación se usa para localizar los archivos fuente que deben compilarse? – Adam

+0

@ Adam No creo que eso sea completamente cierto. La ruta de compilación necesita archivos .class para compilar archivos de origen a veces. Entonces, la ruta de compilación usa la ruta de clase detrás de las escenas también. Si toma algo de tiempo para compilar y ejecutar un proyecto de Java utilizando la CLI de Java, puede ver esto. Los comandos javac y java tienen una opción de ruta de clase porque ambos pueden necesitarla. –

38

La ruta de clases es la forma convencional para indicar al compilador Java y el tiempo de ejecución de Java dónde encontrar clases compiladas. Normalmente es una secuencia de nombres de archivo JAR y nombres de directorio. La ruta de clases utilizada por el compilador y el sistema de ejecución no hacer tienen que ser la misma, pero por lo general "debe ser *, sobre todo para un pequeño proyecto.

BuildPath no es la terminología estándar de Java. Es el término por la forma más rica que un IDE típico especifica la relación entre los "módulos" o "proyectos" que conforman una aplicación. El IDE usa esto para descubrir el classpath y sourcepath para compilar el código de Java y el classpath para ejecutarlo. El IDE también usa la ruta de compilación para descubrir cómo empaquetar su código y sus dependencias como (por ejemplo) un archivo WAR.

Por ejemplo, una ruta de compilación de Eclipse para un proyecto incluye los otros proyectos de los que depende y enumera los archivos JAR de biblioteca adicionales en los que el proyecto se basa. También enumera los paquetes en el proyecto actual de los que pueden depender los proyectos posteriores.

(Si está utilizando Maven para su proyecto, el mecanismo IDE BuildPath es secundaria a las dependencias declaradas en los archivos de POM. Por ejemplo, el uso de Eclipse con el m2eclipse, la BuildPath se sintetiza a partir de los archivos de POM.)

Cuestiones relacionadas