2020-12-20

vim开发javafx(网上没一个靠谱的)

我是用linux的,纯粹vim党。关于linux的javafx配置,网上全是(下jdk8啊,配置环境变量啊。。。你忽悠谁呢,现在linux主流的环境全是jdk11,换java环境几乎是冒险,而且java11是下一个长期支持版本,面对java11是迟早的事情,而且你忽悠谁呢,不需要最新开发环境你不会apt吗?网上开发就没一个人会apt?另外谁想知道ide怎么搞的。。。。。。

吐槽完毕,接下来给大家介绍我配置vim的javafx开发环境,在此之前,我默认你安装了YCM插件(当然不安装也没事啊)

首先当然是愉快的apt(pacman也行,yum滚)

sudo apt install openjfx

当然这个时候你输入

javac xxx.java

命令行全是报错,当然YCM插件下的vim也是全红。。。由于我环境现在已经配置完成了,那个全红的壮观也不能给你们看了

这是由于javafx被悲壮的踢出了java11的默认的生产环境——惨。当然你还是可以运行的
官方示例

javac --module-path $PATH_TO_FX --add-modules javafx.controls HelloFX.java

这是新特性
我们下来的生产环境位置位于/usr/share/openjfx/lib下面
比如你已经构建了这样一个java文件

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.shape.Line;
import javafx.stage.Stage;
// at  Ww W.y iIB A i .CO M
public class Main extends Application {

    @Override
    public void start(Stage stage) {
        VBox box = new VBox();
        final Scene scene = new Scene(box,300, 250);
        scene.setFill(null);
        Line line = new Line();
        line.setStartX(0.0f);
        line.setStartY(0.0f);
        line.setEndX(100.0f);
        line.setEndY(100.0f);
        box.getChildren().add(line);

        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}
//Main.java

接下来这样运行

 javac --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls Main.java
 java --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls Main

然后你会发现,编译成功了,大功告成!!!

NONONO

vim得配置一下

"别在意细节,这个函数是开发用的特殊运行函数
func! Lncurses()
    exec 'w'
    if &filetype == 'cpp'
        "exec "w"
        exec "!g++ % -o %< -lncurses"
        exec "terminal ./%<"
        exec "set nonumber"
    elseif (&filetype == 'html' || &filetype == 'xhtml')
        exec "!google-chrome-stable % &"
   "您只需要看下面一行
    elseif (&filetype == 'java')
        exec "vs"
        exec "terminal javac --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls % && java --module-path /usr/share/openjfx/lib/ --add-modules javafx.controls %<"
    endif
endfunc
map <F6> :call Lncurses()<CR>
"这样按F6就可以编译运行了

结束了?还没有呢,YCM的红色还灿烂呢!
这时候就得配置CLASSPATH了。

众所周知由于linux包管理缘故,需要配置环境变量很少,一般默认环境变量就足够了,网上教程一般环境变量叫你配置在root下面——作死是吧

在$HOME下面有这么几个文件——.profile,.bash_profile,.bashrc.(用zsh的小伙伴后两个应该是.zsh_profile,zishrc)。往这里加同志们

export CLASSPATH=$CLASSPATH:/usr/share/openjfx/lib/*

在以上三个隐藏文件(没有就新建)最后一行加上这个命令
解释一下,export是往终端输出环境变量,所谓环境变量就是

echo $CLASSPATH

后出来的东西,你可以理解为别名,java就认识这个名字,然后往里面找class。冒号是同时指定两个位置,我冒号前面加了一个$CLASSPATH,这是原本加载前的环境变量,再加上新的环境变量,这样就是两个叠加了。

怕死的话可以先在终端输入

export CLASSPATH=$CLASSPATH:/usr/share/openjfx/lib/*

试试有没有影响,有影响就关掉一个重开就是
然后在source一下
比如

source ~/.bashrc
source ~/.profile

之后就完全可以直接用了

附带一句,这个时候直接javac Main.java是能编译通过的,但运行时候就要runtime运行不了,所以嘛我vim里的函数还是得要地(有人有办法解决另说)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值