Che cos'è Java Shebang per OS X?

2

Ho appena iniziato a usare TextWrangler al posto di Eclipse per scrivere programmi Java. Ho trovato uno script per testare i programmi Java in Terminal, ma mi piacerebbe gestire tutto attraverso TextWrangler. Che cos'è Java shebang per OS X? O c'è una shebang Java che è specificamente per TextWrangler?

    
posta Jblagden 19.03.2016 - 20:28
fonte

3 risposte

2

Ecco un semplice script di wrapper che può funzionare efficacemente come un Java shebang su OS X e Linux:

# /* ------- build and run wrapper script for Java -----------------------------
TMP=$(mktemp -d)
tail -c +3 ${0} > ${TMP}/$(basename ${0})
cd ${TMP} && javac $(basename ${0}) && java $(basename ${0%.*}) ${@:1}
RV=${?} ; cd - > /dev/null ; rm -rf ${TMP}
exit ${RV}
----------------------------------------------------------------------------- */

public class example {
    public static void main(String[] args) {
        System.out.println("Hello world");
    }
}

Tuttavia, come sottolineato nei commenti, questo non è tecnicamente un "shebang", ma si avvicina molto in termini di funzionalità.

    
risposta data 10.04.2017 - 16:25
fonte
2
#! /usr/bin/java  --source=11

L'argomento --source è richiesto. Se l'argomento source viene omesso, verrà generato il seguente messaggio di errore.

Error: Could not find or load main class

Ecco un esempio completo

#! /usr/bin/java  --source=11
public class HelloWorld  
{  
   public static void main(final String[] args)  
   {  
      System.console().printf("Hello world");  
   }  
}  
    
risposta data 25.10.2018 - 15:17
fonte
1

L'eseguibile java è / usr / bin / java

Quindi shebang è

#! /usr/bin/java

Tuttavia, un programma java è in genere in più di un file java e quindi è necessario un sistema di generazione, ad es. formica, gradle, maven, sbt .......

Se stai solo imparando e non facendo un rilascio completo ad altri utenti, mi attenerei a Eclipse (o ad un altro IDE, ad esempio Intellij) che può anche includere pacchetti per altri utenti

    
risposta data 19.03.2016 - 20:32
fonte

Leggi altre domande sui tag