秉承Java语言“一次编写,处处运行(write once, run anywhere)”的宗旨。Java程序需要虚拟机JVM(Java Virtual Machine)来负责解释执行,而并非操作系统。也就是说,需要针对不同的操作系统安装不同版本的运行环境JRE(Java Runtime Environment)来运行Java程序。
如果需要开发Java程序,那么则需要安装JDK (Java Development Kit),以完成下图所示的编译和执行过程。
以下操作在Fedora31下验证成功。在不同的操作系统中,以下命令和参数也可能略有不同,请根据实际情况进行调整。
安装Java
使用以下命令安装JDK(具体步骤可以参考Installing Java);
$ sudo dnf install java-1.8.0-openjdk-devel.x86_64
如果需要使用JWS(Java Web Start)以运行JNPL文件,那么还需要安装IcedTea-Web:
$ sudo dnf install icedtea-web
配置Java
如果安装了多个版本的JDK、JRE、和JWS,那么可以使用以下命令进行切换:
$ alternatives --config java
$ alternatives --config javac
$ alternatives --config javaws
测试Java
使用以下命令,查看当前Java版本:
$ java -version
使用以下命令,查看当前Javac版本:
$ javac -version
使用以下命令,查看当前Javaws版本:
$ javaws http://nextmidas.techma.com/nxm343/htdocs/localshell.jnlp
您可以尝试打开本地的JNPL文件,或者使用IcedTea-Web-Tests提供的测试网址。
设置编译器
使用以下命令,设置'makeprg'选项为javac命令:
:set makeprg=javac\ %
通过在vimrc文件中增加以下自动命令,可以为Java语言文件设置编译快捷键:
augroup make_java
au!
au FileType java set makeprg=set makeprg=javac\ %
au FileType java map <buffer> <leader><space> :w<cr>:make<cr>
augroup end
编译Java
使用以下命令,将根据'makeprg'选项进行编译,并生成与.java文件同名的.class字节码文件:
:make
如果编译出现错误,将在QuickFix中显示错误列表,并自动跳转到第一个错误处:
如果希望在编译时保持当前光标位置不变,那么可以使用以下命令:
:make!
使用:cw
命令,将打开quickfix窗口。使用:cp
命令,跳转到上一个错误;使用:cn
命令,跳转到下一个错误。关于QuickFix操作的更多信息,请参阅QuickFix章节。
在修复错误并成功编译之后,将显示命令输出:
使用以下命令,首先Java虚拟机将编译好的.class文件加载到内存,然后针对其中的Java类进行解释执行:
:!java %:r