2014-06-20 13 views
7

Recentemente, ho avuto modo di conoscere Sublime Text 3 e ho provato ad eseguire Java in esso.Come eseguire Java utilizzando Sublime Text 3 su Mac OS

Ho modificato JavaC.sublime-build nel pacchetto, Java.sublime-package.

JavaC.sublime-build:

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

ho script di shell (runJava.sh) come qui di seguito, e l'ho messo nella cartella bin Java.

runJava.sh:

[ -f "$1.class" ] && rm $1.class 
for file in $1.java 
do 
echo "Compiling $file........" 
javac $file 
done 
if [ -f "$1.class" ] 
then 
echo "-----------OUTPUT-----------" 
java $1 
else 
echo " " 
fi 

cartella bin Java:

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin 

Tuttavia, quando ho costruire un file java, ho ricevuto un messaggio di errore che dice che ....

[Errno 2] No such file or directory: 'runJava.sh' 
[cmd: ['runJava.sh', 'Test']] 
[dir: /Users/xxxxxxx/Desktop] 
[path: /usr/bin:/bin:/usr/sbin:/sbin] 
[Finished] 

Non ho idea del motivo per cui questo messaggio è apparso, perché runJava.sh si trova nel posto giusto, che è la cartella bin Java.

Qual è il motivo di questo problema?

risposta

0

/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin non è nel percorso di Sublime, come indicato dal messaggio di errore. Ci sono due modi per aggirare questo. Il primo è spostare lo runJava.sh su /usr/bin o creare un collegamento simbolico ad esso. Il secondo è quello di modificare il file JavaC.sublime-build in questo modo:

{ 
    "cmd": ["runJava.sh", "$file_base_name"], 
    "path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin:$PATH", 
    "shell": true, 
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)", 
    "selector": "source.java" 
} 

Questo aggiunge la cartella Java bin al Sublime di PATH quando il sistema di compilazione è in esecuzione, in modo che possa trovare runJava.sh. L'aggiunta di "shell": true esegue il comando tramite bash, che consentirà di raccogliere le altre variabili di ambiente.

+0

Test: /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/runJava.sh: Autorizzazione negata [Finito in 0,0 s con codice di uscita 126] [cmd: ['runJava.sh', 'Test']] [dir:/Users/xxxxx/Desktop] [percorso:/usr/bin:/bin:/usr/sbin:/sbin] – styner

+0

Grazie per il tuo commento, ma c'è un altro messaggio di errore come sopra. Permesso negato .. Cosa dovrei fare? – styner

2

mia ho modificato di essere come questo

per eseguire lo fai ctrl + shift + b

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

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

Funziona in sublime-text-3 nel mio Mac Air. Grazie. –

12

Questo perché non si dovrebbe modificare il pacchetto direttamente i file con un editor. Sono file zip, nonostante non abbiano un'estensione per avvisare l'utente.

Per modificare il plug-in è necessario andare in/Packages e decomprimere il file Java.sublime-package. Userò la sintassi linux ma la procedura rimane la stessa:

cd <sublime-text3-folder>/Packages 
mkdir java 
cp Java.sublime-packages java 
cd java 
unzip Java.sublime-packages 

quindi utilizzare un editor per modificare JavaC.sublime-build per aggiungere le seguenti righe (don' dimenticare la virgola in più dopo l'ultima riga

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

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

zip di nuovo i contenuti in Java.sublime-package e rimetterlo nella cartella pacchetto via:

zip Java.sublime-pacchetto * cp Java.sublime-pacchetto ..// Pacchetti

Restart sublime e ora con Ctrl + B per costruire il vostro progetto che sarà in grado di funzionare con Ctrl + Mayus + B

+1

Ho creato un nuovo sistema di build utilizzando Strumenti> Crea sistema> Nuovo sistema di generazione> e incollato lo script in untitled.sublime-build. Quindi salvarlo come java.sublime-build e salvarlo sotto a ./config/sublime-text-3/Packages/User. Ora, si presenta come un sistema di compilazione in Strumenti> Compila sistema e Ctrl + B compila e Ctrl + Maiusc + B esegue i programmi java. –

+0

dopo averlo impostato, assicurati di premere 'Ctrl + Shift + B' per eseguire nuovamente' JavaC'. Quindi, supponendo che sia stato creato correttamente, premilo nuovamente, questa volta scegliendo 'JavaC Run'. Da qui in avanti è sufficiente premere 'Ctrl + B' per correre. – ecoe

+0

Grazie. Ho cambiato l'impostazione come qui di seguito, in modo che siamo in grado di costruire e eseguire il file java con un solo tipo (Command + B) { "cmd": [ "java", "$ file_base_name"], \t " file_regex ":"^* \\ [javac \\] (.+): ([0-9] +) :() (. *) $ ", \t" selettore ":" source.java " } –

6

Ci sono molte soluzioni là fuori che tipo di dicono che il stessa cosa senza fornire un passo dopo passo. Così qui è stata la mia esperienza su un Mac'16 con Sublime Text 3:

Aprire una finestra di terminale e procedere come segue:

$ cd/Applications/Sublime \ Text.app/Contents/MacOS/Pacchetti/

Creata una directory temporanea con cui fare confusione.

$ mkdir java

copia corrente Java.sublime-pacchetto nella nuova java directory e cd in java.

$ cp Java.sublime-package java/

$ cd java

Poi, decomprimere il pacchetto per vedere il contenuto:

$ UNZIP Java.sublime- pacchetto

Ora, modificare il file di build, JavaC.sublime-build. Se si dispone di script della riga di comando di testo sublime:

$ subl JavaC.sublime-costruire

In caso contrario,

$ vi JavaC.sublime-build

Poi Ho copiato quanto segue nel mio JavaC.sublime-build che ho trovato qui pubblicato da Sean Mullen:

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

Dopo di che, salvare e mentre all'interno della java tipo directory:

$ zip Java.sublime-pacchetto *

Sposta nuovo pacchetto build necessaria cartella (directory principale):

$ mv Java.sublime-pacchetto ../

Rimuovere temperatura java directory :

$ rm -fr java/

E FATTO. Ora la creazione del file Java ora tenterà anche di eseguirla. Preferisco questo comportamento invece di dover fare un'altra "variante" per eseguire il programma.

+0

È necessario eseguire' cd ..' prima di rimuovere la cartella java temporanea – bumbu

+0

Grazie! Funziona come un fascino! –

5

facile step-by-step:

  1. Installare Package Control se have't già

  2. Utilizzando controllo del pacchetto, installare Package Resource Viewer

  3. Open Control pacchetto, tipo prv ed eseguire PackageResourceViewer: Open Resource

  4. Seleziona Java

  5. Selezionare JavaC.sublime-build

  6. Sostituire la definizione di compilazione JSON con il blocco di codice qui sotto esattamente

  7. Il gioco è fatto! ctrl+b dovrebbe ora compilare ed eseguire il tuo file Java.

definizione di compilazione JSON:

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