Compilar y ejecutar código Java en Sublime Text 2

80

Estoy intentando compilar y ejecutar código Java en Sublime Text 2. No me diga que lo haga manualmente en el símbolo del sistema. Alguien me puede decir como?

Por cierto, estoy en Windows 7 ...

tolluy
fuente
4
Los foros sublimes parecen tener respuestas para esto: sublimetext.com/forum/viewtopic.php?f=3&t=4805 , sublimetext.userecho.com/topic/…
madth3
Ya probé esos ... obtengo esto: [Error 2] El sistema no puede encontrar el archivo especificado [Finalizado]
tolluy
2
Ese problema se resuelve en las publicaciones del foro. Necesita agregar java y javac a su PATH, creo.
madth3
En mi caso, en el que solo estaba tratando de construir y ejecutar un solo archivo java dentro de Sublime Text 3 beta en Windows 7 usando un solo comando Ctrl + B, poniendo lo siguiente en "<Sublime Text 3> \ Packages \ Java \ JavaC.sublime -build "(carpeta / archivo creado que no existía) funcionó. Cambie su directorio bin de Java según sea necesario. {"cmd": ["javac", "$ file_name", "&&", "java", "$ file_base_name"], "shell": true, "ruta": "C: \\ Archivos de programa (x86) \ \ Java \\ jdk1.8.0_05 \\ bin "," file_regex ":" ^ (... *?): ([0-9] *):? ([0-9] *) "," selector " : "source.java"}
Lal
1
Para el registro, ninguna de las respuestas a continuación parece apoyar nada más complicado que un tipo de programa básico de hola mundo. Cualquier programa que tenga importaciones externas y requiera configurar CLASSPATHy / o pasar el cpinterruptor para el proyecto no funcionará. Debería modificar el sistema de compilación cada vez que quiera trabajar en un proyecto diferente o encontrar alguna otra solución (solo un sociópata masoquista modificaría la CLASSPATHvariable en el nivel del sistema operativo cada vez).
Synetech

Respuestas:

77

Entonces esto es lo que agregué al archivo JavaC.sublime-build

{
    "cmd": ["javac", "-Xlint", "$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",

    "variants": [

        { "cmd": ["javac", "-Xlint", "$file"],
          "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
          "selector": "source.java",
          "name": "Java Lintter"
        },  

        { "cmd": ["java", "$file_base_name"],
          "name": "Run Java"
        }
    ]
}

Lo que hace es que crea variantes del comando de compilación normal ( ctrl+b). Con ctrl+ baún podrá compilar su código. Si lo hace shift+ ctrl+ bse ejecutará la primera variante, que en este caso es javac con la opción -Xlint. La segunda y última variante es el propio comando java. puede colocar esto como su primera variante y shift+ ctrl+ brealmente ejecutará el código java.

Además, observe que cada variante tiene un "nombre". Básicamente, esto permite que esta opción específica de "compilación" aparezca en la opción shift+ ctrl+ p. Entonces, usando esta configuración, simplemente puede hacer shift+ ctrl+ py escribir "Ejecutar Java" y presionar enter, y su código se ejecutará.

Espero que esto haya ayudado.

vijay
fuente
10
Si desea utilizar ctrl + shift + b para ejecutar, cambie el campo "nombre" a "Ejecutar".
mtyurt
4
Esto ha cambiado para ST3: * reemplace "cmd" con shell_cmd * elimine las llaves cuadradas * ponga todo el comando en una cadena
Dagoth Ulen
1
+1 Como dicen los documentos del sistema de compilación ST , los comandos de compilación no necesariamente tienen que compilar un archivo, pueden ejecutar cualquier cosa, incluido el programa compilado. Por lo tanto, esta respuesta es la forma correcta de compilar y ejecutar Java desde ST (2) sin usar el símbolo del sistema. (De hecho, TextPad tiene una capacidad similar para definir y ejecutar programas arbitrarios, y tiene un soporte integrado para Java que le permite vincular una tecla de
acceso
gracias por esto funcionó. y gracias @mtyurt, cambiado Run Javaa Runy ahora presionando ctrl+shift+bprograma en ejecución.
Nishant Bhakta
¿Y dónde se puede encontrar un *.sublime-buildarchivo?
Aditya Gupta
19

Encuentro que el método en la publicación Compilar y ejecutar programas Java con Sublime Text 2 funciona bien y es un poco más conveniente que los otros métodos. aquí hay un enlace a la página archivada.

Para ventanas:

Paso 1:

Crea runJava.batcon el siguiente código.

@ECHO OFF
cd %~dp1
ECHO Compiling %~nx1.......
IF EXIST %~n1.class (
DEL %~n1.class
)
javac %~nx1
IF EXIST %~n1.class (
ECHO -----------OUTPUT-----------
java %~n1
)

Copie este archivo en el directorio bin jdk.

Paso 2:

  1. Abra el directorio de paquetes de Sublime usando Preferencias> Examinar paquetes.
  2. Ir a la carpeta de Java
  3. Abra JavaC.sublime-build y reemplace la línea
    "cmd": ["javac", "$file"],
    con
    "cmd": ["runJava.bat", "$file"],

¡Hecho!

Escriba programas y ejecútelos usando CTRL + B

Nota : Las instrucciones son diferentes para Sublime 3.

vancexu
fuente
15

Sublime Text 3 tiene una solución ligeramente diferente. Esta es una modificación de la respuesta de vijay, que estaba usando antes.

 {
     "shell_cmd": "javac -Xlint \"${file}\"",
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "working_dir": "${file_path}",
     "selector": "source.java",

     "variants":
     [
          {
               "name": "Run",
               "shell_cmd": "java \"${file_base_name}\""
          }
     ]
 }

Pegue lo anterior en un nuevo archivo llamado JavaC.sublime-buildy colóquelo en sus paquetes de usuario. Esto se puede encontrar en C:\Users\You\AppData\Roaming\Sublime Text 3\Packages\User.

Ctrl-B se compilará. Ctrl-Shift-B se ejecutará.

Rokit
fuente
2
Buen trabajo. Esto también funciona en Linux, aunque no parecía necesitar las comillas dobles adicionales y el símbolo de escape inicial. = :). Pero funciona. Gracias.
NYCeyes
8

Esta versión de JavaC.sublime-build, que se edita a partir de la respuesta de vijay, me funciona tanto en Windows 7 como en Mac para Sublime Text 3.

Lo edité para que Ctrl + bo command + b sea suficiente para ambos build + run.

{
"shell_cmd": "javac -Xlint $file && java $file_base_name",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"shell": true
}

'&&' asegura que la segunda parte se ejecute solo cuando la primera parte tenga éxito, es decir, solo cuando se genere el archivo de clase. Puede encontrar más información relacionada aquí: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true

Alex Yao
fuente
1
Esta solución también funciona para el texto sublime 2 si se reemplaza shell_cmdcon cmd. Esta es la única solución que funcionó para mí. Gracias.
Andritchi Alexei
7

compilar y ejecutar según la documentación de sublime text 2 nd 3

paso- 1: establezca las variables de entorno para java como ya sabe o consulte en algún lugar

strp-2: abra un nuevo documento y copie y pegue el código a continuación

{
"cmd": ["javac", "$file_name", "&&", "java", "$file_base_name"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.java",
"shell":true }

paso 3: guarde el documento como userjavaC.sublime-build en el directorio C: \ Users \ myLapi \ AppData \ Roaming \ Sublime Text 3 \ Packages \ User

paso 4:

después de hecho, seleccione como herramientas-> construir sistemas-> usuariojavaC

para compilar y ejecutar presione ctrl + b

saroj
fuente
6

Estoy usando Windows 7. ¡La siguiente solución me funciona!

**Open** the file JavaC.sublime-build and replace all the code in the file with the code below:

{
 "cmd": ["javac", "$file_name","&&","java", "$file_base_name"],
 "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
 **"path": "C:\\Program Files\\Java\\jdk1.6.0\\bin\\",**
 "selector": "source.java",
 "shell": true
 }

Recuerde reemplazar "C: \ Archivos de programa \ Java \ jdk1.6.0 \ bin \" con la ruta donde puso su jdk. Y asegúrese de agregar la ruta de su java JDK a la variable de entorno "PATH". Consulte la publicación de bunnyDrug para configurar la variable de entorno. ¡¡Mejor!!

Sam003
fuente
3

Consulte la solución en: http://www.compilr.org/compile-and-run-java-programs/

Espero que se solucione, tanto para compilar como para ejecutar las clases dentro de sublime ..... Puedes ver mi script en la sección de comentarios para probarlo en caso de mac ...

EDITAR: Desafortunadamente, el enlace anterior está roto ahora. Detallaba todos los pasos necesarios para compilar y ejecutar java dentro de un texto sublime. De todos modos, para sistemas mac o linux, lo siguiente debería funcionar:

modificar el archivo javac.sublime-build para:


#!/bin/sh

classesDir="/Users/$USER/Desktop/java/classes/"
codeDir="/Users/$USER/Desktop/java/code/"
[ -f "$classesDir/$1.class" ] && rm $classesDir/$1.class
for file in $1.java
do
echo "Compiling $file........"
javac -d $classesDir $codeDir/$file
done
if [ -f "$classesDir/$1.class" ]
then
echo "-----------OUTPUT-----------"
java -cp $classesDir $1
else
echo " "
fi

Aquí, he creado una carpeta llamada "java" en el Escritorio y subcarpetas "clases" y "código" para mantener los archivos .class y .java respectivamente, que puede modificar a su manera.

Bhavesh Agarwal
fuente
El enlace está roto, ¿qué decía?
ninMonkey
2

Como se detalla aquí:

http://sublimetext.userecho.com/topic/90531-default-java-build-system-update/

Pasos que tomé para remediar esto

  1. Haga clic en Inicio

  2. Haga clic derecho en 'Computadora'

2.5 Haga clic en Propiedades.

  1. En el lado izquierdo, seleccione 'Configuración avanzada del sistema'

  2. Cerca de la parte inferior, haga clic en 'Variables de entorno'

  3. Desplácese hacia abajo en 'Variables del sistema' hasta que encuentre 'RUTA'; haga clic en editar con esta opción seleccionada.

  4. Agregue la ruta a su carpeta bin de Java. El mío termina luciendo así:

    CÓDIGO: SELECCIONAR TODO

    ; C: \ Archivos de programa \ Java \ jdk1.7.0_03 \ bin \

jgritty
fuente
esto no funciona, hago clic en Inicio, clic derecho en Computadora y no obtengo nada, solo un menú único, no doble ... y estaba siguiendo los tutoriales de newbostons, así que ya hice las cosas de PATH
tolluy
2

Para Sublime Text 3
en "C: \ Program Files \ Sublime Text 3 \ Packages", obtienes java.sublime-package, cópialo en otra carpeta, cambia su extensión de .sublime-package a zip y extráelo, obtienes JavaC.sublime-build archivo para sus Modificaciones como arriba.
después de todas las modificaciones extraídas, la carpeta java vuelve a convertir a .zip y cambia su extensión .zip a .sublime-package. después de eso, copie y pegue este archivo en C: \ Archivos de programa \ Sublime Text 3 \ Packages.
¡Esto te ayudara!

(incluso si obtiene mi archivo de http://upfile.mobi/363820 o http://www.4shared.com/file/73SkzY-Kba/Java.html enlace que utilizo para ejecutar el código java utilizo el truco de "Wesley Baugh "por lo que debe copiar el archivo runJava.bat a su directorio C: \ Archivos de programa (x86) \ Java \ jdk1.8.0 \ bin como él dice. y copiar el archivo vinculado anterior a C: \ Archivos de programa \ Sublime Text 3 \ Packages )

Bhushan Balu Sahane
fuente
2

Puede compilar y ejecutar su código completamente en ST, y es muy rápido / simple. Hay un paquete ST reciente llamado Javatar que puede hacer esto. https://javatar.readthedocs.org

Keng
fuente
2

Este es un código para compilar y ejecutar java en texto sublime 3

"shell_cmd": "javac -d. $ file && java $ {file_base_name}. $ {file_base_name}", "shell": verdadero

Yesid Torres
fuente
1

Seguí una publicación en este hilo y lo hice funcionar perfectamente:

Haga el archivo bat con lo siguiente y guárdelo en cualquier lugar de su RUTA. Sugiero C: \ Archivos de programa \ Java \ jdk * \ bin \ para mantener todo junto.

@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1

luego edite C: \ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build, el contenido será

{
   "cmd": ["javac", "$file"],
   "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
   "selector": "source.java"
}

reemplace "javac" con el nombre de su archivo bat (por ejemplo, javacexec.bat) y guárdelo.

Zinan Xing
fuente
1

Siguiendo los pasos a continuación, tendrá 2 sistemas de compilación en sublime: "JavaC" y "JavaC_Input".

"JavaC" le permitiría ejecutar código que no requiere la entrada del usuario y mostrar los resultados en el simulador de terminal de sublime, que es conveniente y atractivo. "JavaC_Input" le permite ejecutar código que requiere la entrada del usuario en una ventana de terminal separada, puede aceptar la entrada del usuario. También puede ejecutar código que no requiera entrada en este sistema de compilación, por lo que si no le importa la ventana emergente, puede seguir con este sistema de compilación y no cambiar. Puede cambiar entre sistemas de compilación desde Herramientas -> Sistema de compilación. Y compila y ejecuta código usando ctrl + b.

Estos son los pasos para lograrlo:

(nota: asegúrese de que ya tiene la configuración básica del sistema java: instale JDK y configure CLASSPATH y PATH correctos, no daré más detalles sobre esto)

Configuración del sistema de compilación "JavaC"

1, cree un archivo bat con el siguiente código y guárdelo en C: \ Archivos de programa \ Java \ jdk * \ bin \ para mantener todo junto. Nombra el archivo "javacexec.bat".

@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1

2, luego edite C: \ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build (si no hay ninguno, cree uno), el contenido será

{
   "cmd": ["javacexec.bat", "$file"],
   "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
   "selector": "source.java"
}

Configuración del sistema de compilación "JavaC_Input"

1, instale Cygwin [ http://www.cygwin.com/]

2, vaya a C: \ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \, luego cree un archivo llamado "JavaC_Input.sublime-build" con el siguiente contenido

{
"cmd": ["javacexec_input.bat", "$file"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
}

3, cree un archivo bat con el siguiente código y guárdelo en C: \ Archivos de programa \ Java \ jdk * \ bin \ para mantener todo junto. Nombre el archivo "javacexec_input.bat".

@echo off
javac  -Xlint:unchecked %~n1.java 
start cmd /k java -ea %~n1
Mathew Gillroy
fuente
1
{
"shell_cmd": "javac -Xlint  \"${file}\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"working_dir": "${file_path}",
"selector": "source.java",

"variants": [

    { "shell_cmd":"javac -Xlint  \"${file}\" && java $file_base_name  < input.txt > output.txt",
      "name": "Run"
    }
   ]
}

guarde esta compilación sublime y ejecute el programa con ctrl + shift + B con la variante de ejecución. Sin la variante de ejecución, solo creará un archivo .class pero no lo ejecutará.

Esta compilación leerá la entrada de input.txt e imprimirá la salida en output.txt.

Nota : tanto input.txt como output.txt deben estar presentes en el mismo directorio de trabajo que su archivo .java.

akhil
fuente
0

Asegúrese de instalar JDK / JRE primero.

Si es usuario de Mac, siga estos pasos:

terminal abierto, vaya a su diccionario raíz escribiendo

discos compactos ..

repetidamente. utilizar

ls

para ver si has llegado a la raíz

Verá la carpeta de la biblioteca Ahora siga esta ruta Biblioteca / Java / JVM / bin Una vez que ingrese al contenedor, puede ver el archivo JavaC

Ahora necesita obtener la ruta de esta carpeta para eso, solo escriba este comando

pwd

Copie y péguelo en su archivo JavaC sublime y cree el código Java en sublime con cmd + b.

nimish parikh
fuente
0

La respuesta de Alex Yao es la solución más simple, si solo desea construir y ejecutar un programa Java sin tomar ninguna entrada de la consola, use la solución proporcionada por Alex Yao . Sin embargo, si desea recibir información de la consola, consulte el siguiente enlace

¿Entrada de consola Java en Sublime Text 2?

Mohit Dasariya
fuente
0

Esto es mío usando texto sublime 3. Necesitaba la opción para abrir el símbolo del sistema en una nueva ventana. La compilación de Java se utiliza con la -Xlintopción de activar mensajes completos para advertencias en Java.

He guardado el archivo en la carpeta de mi paquete de usuario como Java (Build) .sublime-build

{
     "shell_cmd": "javac -Xlint \"${file}\"",
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "working_dir": "${file_path}",
     "selector": "source.java",
     "variants":
     [
          {
               "name": "Run",
                "shell_cmd": "java \"${file_base_name}\"",
          },
          {
               "name": "Run (External CMD Window)",
               "shell_cmd": "start cmd /k java \"${file_base_name}\""
          }
     ]
}
moyarich
fuente
0

El sistema de compilación JavaC funciona como un encanto, pero falla cuando desea dar una entrada desde stdin en Sublime-text. Pero puede editar el sistema de compilación para que reciba información del usuario. Esta es la compilación JavaC modificada que estoy usando en Ubuntu 18.04 LTS. Puede editar el sistema de compilación o crear un nuevo sistema de compilación.

Crear un nuevo sistema de construcción.

  • Vaya a Herramientas >> Sistema de compilación >> Nuevo sistema de compilación .
  • Copiar Pegue el siguiente código y Archivo >> Guardar .

    {

    "shell_cmd": "javac \"$file\"",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java",
    "variants": 
    [
        {
            "shell_cmd":"bash -c \"javac $file\" && gnome-terminal -- bash -c \"java $file_base_name ;read\"", 
            "name": "Run"
        }
    
    ]    
    

    }

Para editar el archivo de compilación Java C existente

Raghav
fuente
0

Así es como lo hice con estos sencillos pasos:

Configure un nuevo sistema de construcción:

  1. Herramientas> Sistema de compilación> Nuevo sistema de compilación

  2. Reemplace el código predeterminado con lo siguiente:

    {
       "cmd": ["javac","$file_name","&&","java","$file_base_name"], 
       "path": "C:\\Program Files\\Java\\jdk1.7.0_25\\bin\\", 
       "shell": true
    }
    // locate the path of your jdk installation and replace it with 'path' 
    
  3. Guarde el archivo dándole un nombre (llamé al mío "Java")

Activar el sistema de compilación:

  1. Herramientas> Sistema de compilación> Java (nombre del archivo con el que lo guardó)
  2. Ahora ejecuta tu programa con Ctrl + B
Ahtisham
fuente