Как скомпилировать и запустить программу java на jupyter - PullRequest
1 голос
/ 08 мая 2020

enter image description here Я пытаюсь запустить программу java на Jupyter, но вижу несколько UndefinedMagicException s.

Использование java ядра IJava версии 1.3.0 и пытается запустить следующую ячейку:

%%file day.java
import java.util.Calendar;

class day {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int day = cal.get(Calendar.DATE);
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        int minute = cal.get(Calendar.MINUTE);
        System.out.println(year + "/" + month + "/" + day + " " + hour + ":" + minute);
    }
}

, но не создает файл day.java и вызывает ошибку:

io.github.spencerpark.jupyter.kernel.magic.registry.UndefinedMagicException: Undefined cell magic 'file'
at io.github.spencerpark.jupyter.kernel.magic.registry.Magics.applyCellMagic(Magics.java:34)
at io.github.spencerpark.ijava.runtime.Magics.cellMagic(Magics.java:31)
at .(#12:1)

Как можно Починить ноутбук?

1 Ответ

0 голосов
/ 09 мая 2020

Поскольку вы используете ядро ​​java, нет необходимости компилировать и запускать программу с помощью команд оболочки. Вместо этого просто поместите содержимое метода day#main прямо в ячейку!

enter image description here

И, как и ядро ​​Python, состояние сохраняется между ячейкой. Это означает, что после оценки приведенного выше есть переменные year, month, et c. которые вы можете использовать в последующих ячейках. Также, как и в ядре Python, вы можете написать выражение в последней строке, которое станет выходом (Out[*]) ячейки.

enter image description here

Наконец, для полноты, подход, который вы изначально использовали с помощью магии ячеек %%file и %%shell, является популярным при использовании ядра Python для запуска java в системе. т.е. ваш оригинальный ноутбук будет работать нормально, если переключить ядро ​​вашего ноутбука на I Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...