read pass from java eclipse command-line

pass - Genere el proyecto Eclipse Java desde Command Line



pass arguments java (9)

¿Hay alguna forma de compilar un proyecto Java basado en Eclipse desde la línea de comando?

Estoy tratando de automatizar mi compilación (utilizando FinalBuilder no es la hormiga), y no soy un experto en Java ni en Eclipse. Probablemente pueda averiguar cómo hacerlo con las opciones de línea de comando de java, pero luego el proyecto Eclipse se siente como un desperdicio de esfuerzo.

En el caso de que no haya forma de compilar un proyecto de Eclipse a través de la línea de comando, ¿hay alguna forma de generar la línea de comando de java requerida desde Eclipse? ¿O hay algunos archivos que puedo explorar para encontrar los pasos de compilación detrás de las escenas?

Chicos, estoy buscando una respuesta que NO incluya hormiga. Permítanme volver a repetir la pregunta original ... ¿Hay alguna manera de construir un proyecto de Eclipse desde la línea de comando?

No creo que esta sea una pregunta irrazonable dado que puedo hacer algo como esto para Visual Studio:

devenv.exe /build "Debug|Any CPU" "C:/Projects/MyProject/source/MyProject.sln"


Después de 27 años, yo también me incomoda desarrollarme en un IDE. Probé estas sugerencias (arriba) - y probablemente no seguí todo bien - así que hice una búsqueda en la web y encontré lo que funcionó para mí en '' http://incise.org/android-development-on-the-command-line.html ''.

La respuesta parecía ser una combinación de todas las respuestas anteriores (por favor dígame si me equivoco y acepte mis disculpas si es así).

Como se mencionó anteriormente, eclipse / adt no crea los archivos ant necesarios. Para compilar sin eclipse IDE (y sin crear scripts ant):

1) Genera build.xml en tu directorio de nivel superior:

android list targets (to get target id used below) android update project --target target_id --name project_name --path top_level_directory ** my sample project had a target_id of 1 and a project name of ''t1'', and I am building from the top level directory of project my command line looks like android update project --target 1 --name t1 --path `pwd`

2) Luego compilo el proyecto. Estaba un poco confundido por la solicitud de no usar ''hormiga''. Con suerte, el solicitante quiso decir que no quería escribir ninguna secuencia de comandos ant. Digo esto porque el siguiente paso es compilar la aplicación usando hormiga

ant target this confused me a little bit, because i thought they were talking about the android device, but they''re not. It''s the mode (debug/release) my command line looks like ant debug

3) Para instalar el apk en el dispositivo, tuve que volver a utilizar hormiga:

ant target install ** my command line looked like ant debug install

4) Para ejecutar el proyecto en mi teléfono Android, uso adb.

adb shell ''am start -n your.project.name/.activity'' ** Again there was some confusion as to what exactly I had to use for project My command line looked like adb shell ''am start -n com.example.t1/.MainActivity'' I also found that if you type ''adb shell'' you get put to a cli shell interface where you can do just about anything from there.

3A) Una nota al margen: Para ver el registro desde el uso del dispositivo:

adb logcat

3B) Una segunda nota al margen: el enlace mencionado anteriormente también incluye instrucciones para construir todo el proyecto desde el comando.

Con suerte, esto ayudará con la pregunta. Sé que estaba realmente feliz de encontrar algo sobre este tema aquí.


El apporoach normal funciona al revés: creas tu compilación basándose en maven o ant y luego usas integraciones para tu IDE de elección para que seas independiente de él, que es especialmente. importante cuando tratas de poner a los nuevos miembros del equipo al día o usar un servidor de integración contundente para compilaciones automatizadas. Recomiendo usar maven y dejar que haga el trabajo pesado por ti. Crea un archivo pom y genera el proyecto de eclipse a través de mvn eclipse: eclipse. HTH


Hola, solo añadido a los comentarios de VonC. Estoy usando el compilador ecj para compilar mi proyecto. estaba arrojando la expceción de que algunas de las clases no se encuentran. Pero el proyecto estaba construyendo bien con el compilador javac.

Así que solo agregué las clases en el classpath (que tenemos que pasar como argumento) y ahora está funcionando bien ... :)

Kulbir Singh


Lo que normalmente hace eclipse es CONSTRUIR solo archivos java. Dado que usted debe poder mirar el classpath del archivo .classpath y las fuentes requeridas del archivo .project y hacer un javac sobre eso. Debería ser bastante fácil.


Para completar la respuesta de André, una solución de hormiga podría ser como la descrita en Emacs, JDEE, Ant y el compilador de Eclipse Java , como en:

<javac srcdir="${src}" destdir="${build.dir}/classes"> <compilerarg compiler="org.eclipse.jdt.core.JDTCompilerAdapter" line="-warn:+unused -Xemacs"/> <classpath refid="compile.classpath" /> </javac>

El elemento compilerarg también le permite pasar args de línea de comando adicionales al compilador de eclipse.

Aquí puede encontrar un ejemplo completo de script ant que se invocaría en una línea de comando con:

java -cp C:/eclipse-SDK-3.4-win32/eclipse/plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar org.eclipse.core.launcher.Main -data "C:/Documents and Settings/Administrator/workspace" -application org.eclipse.ant.core.antRunner -buildfile build.xml -verbose

PERO todo lo que implica hormiga, que no es lo que Keith busca.

Para una compilación de lotes, consulte Compilación de código Java , especialmente la sección " Uso del compilador de lotes "

La clase del compilador por lotes se encuentra en el complemento JDT Core. El nombre de la clase es org.eclipse.jdt.compiler.batch.BatchCompiler. Se empaqueta en plugins / org.eclipse.jdt.core_3.4.0..jar. Desde 3.2, también está disponible como descarga separada. El nombre del archivo es ecj.jar.
Desde 3.3, este jar también contiene el soporte para jsr199 (Compiler API) y el soporte para jsr269 (Annotation processing). Para utilizar el soporte de procesamiento de anotaciones, se requiere 1.6 VM.

Ejecutar el compilador por lotes Desde la línea de comandos se daría

java -jar org.eclipse.jdt.core_3.4.0<qualifier>.jar -classpath rt.jar A.java

o:

java -jar ecj.jar -classpath rt.jar A.java

Todas las opciones de compilación de Java se detallan en esa sección también.

La diferencia con la característica de compilación de línea de comandos de Visual Studio es que Eclipse no parece leer directamente su .project y .classpath en un argumento de línea de comandos . Debe informar toda la información contenida en .project y .classpath en varias opciones de línea de comandos para lograr el mismo resultado de compilación.

Entonces, la respuesta corta es: "sí, tipo de eclipse". ;)


Puede construir un proyecto de eclipse a través de un área de trabajo desde la línea de comando:

eclipsec.exe -noSplash -data "D:/Source/MyProject/workspace" -application org.eclipse.jdt.apt.core.aptBuild

Utiliza el plugin jdt apt para construir tu espacio de trabajo de forma automática. Esto también se conoce como una "construcción sin cabeza". Maldita sea difícil de entender. Si no está utilizando un exe win32, puede intentar esto:

java -cp startup.jar -noSplash -data "D:/Source/MyProject/workspace" -application org.eclipse.jdt.apt.core.aptBuild

Actualizar

Hace varios años eclipse reemplazó startup.jar con el "equinox launcher"

https://wiki.eclipse.org/Equinox_Launcher

En Eclipse Mars (MacOX):

java -jar /Applications/Eclipse.app/Contents/Eclipse/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -noSplash -data "workspace" -application org.eclipse.jdt.apt.core.aptBuild

El parámetro -data especifica la ubicación de su espacio de trabajo.

El número de versión del lanzador equinoccio dependerá de la versión de eclipse que tengas.


Respuesta corta. No. Eclipse no tiene un modificador de línea de comando como Visual Studio para construir un proyecto.


Solo quería agregar mis dos centavos a esto. Intenté hacer lo que @Kieveli sugirió para non win32 (se repite a continuación) pero no funcionó para mí (en CentOS con Eclipse: Luna):

java -cp startup.jar -noSplash -data "D:/Source/MyProject/workspace" -application org.eclipse.jdt.apt.core.aptBuild

En mi configuración particular en CentOS usando Eclipse (Luna) funcionó:

$ECLIPSE_HOME/eclipse -nosplash -application org.eclipse.jdt.apt.core.aptBuild startup.jar -data ~/workspace

El resultado debería verse más o menos así:

Building workspace Building ''/RemoteSystemsTempFiles'' Building ''/test'' Invoking ''Java Builder'' on ''/test''. Cleaning output folder for test Build done Building workspace Building ''/RemoteSystemsTempFiles'' Building ''/test'' Invoking ''Java Builder'' on ''/test''. Preparing to build test Cleaning output folder for test Copying resources to the output folder Analyzing sources Compiling test/src/com/company/test/tool Build done

No estoy seguro de por qué aparentemente lo hizo dos veces, pero parece funcionar.


Esta pregunta contiene algunos enlaces útiles sobre compilaciones sin cabeza, pero están principalmente orientadas a la creación de complementos. No estoy seguro de cuánto de eso se puede aplicar a proyectos puros de Java.