Що таке Java Shebang для OS X?


2

Я щойно почав використовувати TextWrangler замість Eclipse для написання програм Java. Я знайшов сценарій для тестування Java-програм у Терміналі, але хотів би обробити все правильно через TextWrangler. Що таке Java shebang для OS X? Або є Java-шебанг, призначений спеціально для TextWrangler?


Ви знаєте, що вам потрібно зібрати джерело, перш ніж його запустити?
Thorbjørn Ravn Andersen

Відповіді:


2

Ось простий скрипт обгортки, який ефективно може працювати як Java-шебанг для OS X та 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");
    }
}

Однак, як зазначається в коментарях, це технічно не є "шебангом", але це дуже близько з точки зору функціональності.


2
Це не шебанг.
Макс Рід

@MaxRied технічно так, але це файл оболонки, я не думаю, що зараз на Mac.
Уїльям

2
#! /usr/bin/java  --source=11

Аргумент --source обов'язковий. Якщо аргумент джерела пропущено, з'явиться таке повідомлення про помилку.

Error: Could not find or load main class

Ось повний приклад

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

Зауважте, що це буде працювати лише з Java 11.
Thorbjørn Ravn Andersen

1

Виконаний файл Java - / usr / bin / java

Так що шебанг є

#! /usr/bin/java

Однак програма java зазвичай є у кількох файлах java, тому вам потрібна система збирання, наприклад, мураха, gradle, maven, sbt .......

Якщо ви просто навчаєтесь і не робите повного випуску для інших користувачів, я б дотримувався Eclipse (або іншого IDE, наприклад Intellij), який також може упакувати для інших користувачів


Я спробував це, але отримав такий результат: Помилка: не вдалося знайти або завантажити основний клас .Users.jfblagden.Desktop.PiesTest.java
Jblagden

Командний рядок отримує більше cpomplex, таким чином вивчайте систему складання або дотримуйтесь Eclipse. ви можете змусити цей файл працювати з параметрами до shebang, але насправді не варто простіше написати сценарій оболонки, щоб зателефонувати на java
Марк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.