2011-05-27 3 views
8

Es algo realmente simple, pero no puedo entenderlo. He visto muchas publicaciones de StackOverFlow y también en Internet.Creación de un archivo de proceso por lotes, para la ejecución simple del comando javac y java

Mi objetivo es crear un .bat que abrirá cmd y ejecutará mi Main.java en el símbolo del sistema. Fácil, ¿no es así, pero me he confundido acerca de cómo?

A continuación les escribo etapas que mi archivo por lotes debe realizar

  1. cmd abierta
  2. javac Main.java
  3. java principal

Mi archivo residirá junto a toda mi. Java, así que estoy asumiendo que no necesito dar una ruta explícita.

Mi entendimiento hasta ahora por la investigación:

  1. editor de texto abierto
  2. escribir un código para abrir cmd (que no estoy seguro de cómo)
  3. eco javac Main.java (que sigue siendo difusa concepto para mí)
  4. java eco principal

Guardar como: name.bat

Cualquier ayuda será apreciada. Gracias.

+0

Gracias Andrew Trato de hacer esas sangrías, pero no salió muy bien :(. – doNotCheckMyBlog

Respuesta

14
  1. libreta abierta

  2. escritura

    @echo off 
    
    javac Main.java 
    
    java Main 
    

3.save Como blahblah.bat

asegúrese de que Main.java reside en su archivo de proceso por lotes y la ruta de acceso de java se establece en env. variable

4. haga doble clic en el archivo por lotes, no hay necesidad de abrir cmd explícitamente TT abrirse en la ejecución .bat

1

¿Comprendo su pregunta solamente? ¿Necesita el archivo .bat para compilar y ejecutar archivos de clase java?

si es un archivo .bat. puede hacer doble clic.

y en su archivo .bat, sólo tiene que javac Main.java ((asegúrese de que el murciélago tiene la ruta de acceso a ur Main.java) java principal

Si quiere hacerse eco de las advertencias de compilación/declaraciones, que necesitarían algo más. Pero, como quiera que sea automatizado, tal vez finalmente no lo necesite.

+0

Sí exactamente, Entonces, ¿cómo hacer un .bat que abrirá cmd prompt compilar mi código y ejecutar mi Main.java que tiene principal (String [] args) método, Gracias – doNotCheckMyBlog

+0

1) abrir el bloc de notas tipo: javac Main.java java principal 2) guardar este archivo como something.bat 3) poner este archivo (something.bat) en el mismo directorio que Main.java luego haga doble clic en something.bat (que ahora debería estar en el mismo directorio que su Main.java –

+0

Si Main.java necesita entradas args entonces 1) java Main ar g1 arg2 arg3 –

1

Cree un archivo de texto sin formato (usando el bloc de notas) y escriba la línea exacta que usaría para ejecute su archivo Java con el símbolo del sistema. Luego, cambie la extensión a .bat y listo.

Haciendo doble clic en este archivo se ejecutará su programa java.

Yo recomiendo un archivo para javac, uno para java para que pueda solucionar si algo está mal.

  • Asegúrate de que Java también esté en tu camino ... IE escribiendo java en una ventana DOS cuando estés en tu área de trabajo java debería mostrar el mensaje de versión java. Si java no está en su ruta, el archivo por lotes no funcionará a menos que use la ruta absoluta al binario java.
0

no me he un JDK instalado en mi máquina para verificar esto, pero aquí hay algo para empezar con

%CLASSPATH%=C:\Program Files\Java\jdk1.6\bin rem or whatever your path is 
START %CLASSPATH%\javac Main.java 
START %CLASSPATH%\java Main 
1
  1. Abrir el Bloc de notas

  2. Escribe la siguiente:

    javac * 
    java Main 
    
  3. GuardarComo principal. bate o cualquier nombre que desee utilizar para el archivo por lotes

Hacer sur e Main.java que se encuentra en la misma carpeta, junto con su archivo por lotes

doble clic en el archivo por lotes para ejecutar el archivo Main.java

-2

bueno yo creo que sólo tienes que copiar los archivos de clase compilados y copiar el carpeta jre y hacer lo siguiente como el contenido del archivo por lotes y guardar todos juntos cualquier máquina windows y sólo haga doble clic

@echo 
setpath d:\jre 
d: 
cd myprogfolder 
java myprogram 
+0

Esto no responde la pregunta – Leigh

4

desea que estas cuatro líneas de código en su rUN.BAT:

@echo off   //this makes it so you have an empty cmd window on startup 
javac Main.java //this compiles the .java into a .class 
java Main   // this runs the .class file 
pause    //this prevents the window from instantly closing after program end 
0

Lo único que añadiría es hacerlo un poco más flexible. La mayoría de las veces tendré un archivo java trivial que quiero ejecutar como Main.java, Simple.java, Example.java o Playground.java (se entiende la idea).

Utilizo lo siguiente para desactivar un javac y el java correspondiente.

@echo off 
javac %~n1.java 
java %~n1 

El% ~ n1 obtiene el nombre de archivo (sin extensión) del primer argumento pasado al archivo de proceso por lotes. Así que de esta forma puedo ejecutarlo usando la terminación de pestañas y no tener que preocuparme de que funcione con la extensión .class o .java.

Así ambos de los siguientes tendrán el mismo resultado:

run.bat Main.class 
and 
run.bat Main.java 

no la cuestión carteles original del 100% de respuesta, pero creo que es un buen paso siguiente/evolución de los programas simples javac/Java .

0

También me he enfrentado a una situación similar en la que necesitaba un script que pudiera encargarse de javac y luego de java (ing) de mi programa java. Entonces, se me ocurrió este script BATCH.

:: @author Rudhin Menon 
:: Created on 09/06/2015 
:: 
:: Auto-Concrete is a build tool, which monitor the file under 
:: scrutiny for any changes, and compiles or runs the same once 
:: it got changed. 
:: 
:: ======================================== 
:: md5sum and gawk programs are prerequisites for this script. 
:: Please download them before running auto-concrete. 
:: ======================================== 
:: 
:: Happy coding ... 

@echo off 

:: if filename is missing 
if [%1] EQU [] goto usage_message 

:: Set cmd window name 
title Auto-Concrete v0.2 

cd versions 

if %errorlevel% NEQ 0 (
    echo creating versions directory 
    mkdir versions 
    cd versions 
) 

cd .. 

javac "%1" 

:loop 
    :: Get OLD HASH of file 
    md5sum "%1" | gawk '{print $1}' > old 
    set /p oldHash=<old 
    copy "%1" "versions\%oldHash%.java" 

    :inner_loop 
    :: Get NEW HASH of the same file 
    md5sum "%1" | gawk '{print $1}' > new 
    set /p newHash=<new 

    :: While OLD HASH and NEW HASH are the same 
    :: keep comparing OLD HASH and NEW HASH 
    if "%newHash%" EQU "%oldHash%" (
     :: Take rest before proceeding 
     ping -w 200 0.0.0.0 >nul 
     goto inner_loop 
    ) 

    :: Once they differ, compile the source file 
    :: and repeat everything again 
    echo. 
    echo ========= %1 changed on %DATE% at %TIME% =========== 
    echo.  
    javac "%1" 
goto loop 

:usage_message 
echo Usage : auto-concrete FILENAME.java 

escritura de la hornada encima comprobará el archivo para cualquier cambio y compilar si se hacen los cambios, puede modificarlo para compilar siempre que lo desee. Feliz de codificación :)

0
@author MADMILK 
@echo off 
:getback1 
set /p jump1=Do you want to compile? Write yes/no : 
if %jump1% = yes 
goto loop 
if %jump1% = no 
goto getback2 
:: Important part here 
:getback2 
set /p jump2=Do you want to run a java program? Write yes/no : 
if %jump2% = yes 
goto loop2 
if %jump2% = no 
goto getback1 
:: Make a folder anywhere what you want to use for scripts, for example i make one. 
cd desktop 
:: This is the folder where is gonna be your script(s) 
mkdir My Scripts 
cd My Scripts 
title Java runner/compiler 
echo REMEMBER! LOWER CASES AND UPPER CASES ARE IMPORTANT! 
:loop 
echo This is the java compiler program. 
set /p jcVal=What java program do you want to compile? : 
javac %jcVal% 
:loop2 
echo This is the java code runner program. 
set /p javaVal=What java program do you want to run? : 
java %javaVal% 
pause >nul 
echo Press NOTHING to leave 
0

acabo de hacer un script por lotes simple que toma un nombre de archivo como argumento compila y ejecuta el archivo de Java con un comando. Aquí está el código:

@echo off 
set arg1=%1 
shift 
javac -cp . %arg1%.java 
java %arg1% 
pause 

acabo de salvar que a medida que java.bat-correr y lo puso en el directorio System32 para que pueda utilizar la secuencia de comandos desde donde lo desee.

Para utilizar el comando que haría:

run-java filename 

y va a compilar y ejecutar el archivo. Solo asegúrese de omitir la extensión .java cuando escriba el nombre de archivo (podría hacerlo funcionar incluso cuando escriba el nombre del archivo pero soy nuevo en el lote y todavía no sé cómo hacerlo).

Cuestiones relacionadas