如何在Jupyter上编译和运行Java程序

4

enter image description here 我试图在Jupyter上运行一个Java程序,但是出现了多个UndefinedMagicException

使用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个回答

3
由于您正在使用Java内核,因此无需使用shell命令编译和运行程序。相反,只需将day#main方法的内容直接放在单元格中即可!

enter image description here

就像Python内核一样,状态在单元格之间保留。这意味着在评估上面的单元格后,您可以在随后的单元格中使用变量yearmonth等。与Python内核类似,您可以在最后一行编写一个表达式,该表达式将成为单元格的输出(Out[*])。

enter image description here

最后,为了完整起见,您最初采用的%%file%%shell单元格魔法的方法在使用Python内核在系统上运行Java时非常流行。也就是说,如果将笔记本的内核切换到IPython,您原始的笔记本将正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接