JavaFX与Liberica JDK,搭建,运行,打包,放弃Eclipse

news2024/11/15 9:27:57

1、官网

JavaFX中文官方网站、Oracle官方文档

2、教程

JavaFX中文基础教程视频合集
JavaFX实战教程

3、VSCode/Eclipse

VSCode(写HelloWorld用)、VSCode的Java扩展

Eclipse,跳至第9段

4、Liberica JDK安装

Liberica JDK官网下载
依次选择,All versions,Java 17 (LTS),Release Version选一个最新的,Windows,x86,64 bit,Full JDK
(必须是Full JDK这个版本的,因为这个版本才自带JavaFX)
点击下载MSI格式

5、手打HelloWorld代码

新建一个文件夹Hello,在文件夹内新建文件Hello.java,内容如下
(既然是HelloWorld,用记事本或者VSCode打开文件夹就行了)

public class Hello {
	public static void main(String[] args) {
		System.out.printf("hello world");
	}
}

6、运行HelloWorld

javac .\Hello.java;java Hello
在这里插入图片描述

7、修改代码,加入javafx

  1. Hello继承javafx.application.Application
    所以先导入,然后extends Application
    import javafx.application.Application;
    
    public class Hello extends Application{
    	public static void main(String[] args) {
    		System.out.printf("hello world");
    	}
    }
    
  2. 此时VSCode会将Hello类标红,并提示你需要写一个start方法
    在这里插入图片描述
  3. 点击快速修复…(Ctrl+,),点击Add unimplemented methods,自动生成start函数,自动导入javafx.stage.Stage
    (手写也不是不行其实)
    在这里插入图片描述
  4. 删除这两行
    		// TODO Auto-generated method stub
    		throw new UnsupportedOperationException("Unimplemented method 'start'");
    
    改为
    		primaryStage.show();
    
  5. 用不着抛异常,所以删除字符串throws Exception
    在这里插入图片描述
  6. 调用 javafx 中的 launch(启动 JavaFX 应用程序的入口点)
    	public static void main(String[] args) {
    		System.out.printf("hello world");
    	}
    
    改为
    	public static void main(String[] args) {
    		launch(args);
    	}
    
  7. 快捷键Shift+Alt+F格式化代码,最终代码
    在这里插入图片描述

8、运行

javac .\Hello.java;java Hello
运行效果,显示一个什么也没有的窗口
在这里插入图片描述

9、下载IDEA

访问IDEA官网下载地址下载 IntelliJ IDEA 的 Community Edition 版本
勾选用户协议点击Continue,数据分享点击Dont't Send

10、设置IDEA

左侧栏,Customize,All settings…

代码提示快捷键:Keymap,MainMenu,Code,Code Completion
右键Cyclic Expand Word,Remove Alt+/
右键Basic,Remove Ctrl+空格
右键BasicAdd Keyboard Shortcut,按下Alt+/,点击OK
点击Apply

UTF-8编码:Editor,File Encodings
Global EncodingProject Encoding都选择UTF-8,点击Apply

自动导入:Editor,General,Auto Import
勾选Add unambiguous imports on the flyOptimize imports on the fly,点击Apply

大小写模糊匹配:Editor,General,Code Completion
取消Match case(没人会记得代码叫Length/length/Size/size/len/Len/getlen/strlen,还匹配大小写呢,给自己的人生增加难度,生怕找到这个方法是吧)
点击Apply

关闭自动更新:Appearance & Behavior,System Settings,Updates
取消勾选Check IDE updates forCheck for plugin updates,点击Apply

打开超多文件时不隐藏:Editor,General,Editor Tabs
取消勾选Show tabs in one row,点击Apply

显示方法分割线:Editor,General,Appearance
勾选Show method separators,点击Apply

自动缩进注释位置:Editor,Code Style,Java,Arrangement右边,Code Generation(将窗口全屏,设置被折叠了)
取消勾选Line comment at first column,点击Apply
自动缩进注释位置HTML:HTML中的Code Generation
取消勾选Line comment at first columnBlock comment at first column,点击Apply

自动编译:Build, Execution, Deployment,Compiler
勾选Build project automatically,点击Apply

10、新建项目

点击New Project
Name输入hijavafx
点击Create
等待加载
等待右下角更新索引
如果出现下载预建索引提示,点击Always download即可
在这里插入图片描述

11、运行项目

右上角,点击绿色三角形图标(Shift+F10),运行,底部控制台将显示运行结果
(i到5的循环是IDEA自带的)
在这里插入图片描述

12、格式化代码IDEA

Ctrl+Alt+L格式化代码

13、添加javafx代码

public class Main

改为

public class Main extends Application

IDEA将自动添加import语句
IDEA将public class Main extends Application标红并提示需要写一个start方法
点击Implement methods(Alt+Shift+Enter),保持默认实现设置,点击OK自动添加
在这里插入图片描述
删除prinf语句和for循环,删除字符串throws Exception,删除自动生成的注释
main函数中添加launch(args);
start函数中添加primaryStage.show();
最终代码如下

import javafx.application.Application;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.show();
    }
}

运行,成功显示空白窗口

14、添加窗口标题

在start中使用setTitle方法添加窗口标题

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("hiJavaFX");
        primaryStage.show();
    }

15、添加窗口图标

15.1 准备图片

准备一张图片
请添加图片描述

15.2 在IDEA中导入图片

右键文件夹src,New,Directory,命名为resources
右键resources,New,Directory,命名为images
复制图片文件,选中images,Ctrl+V粘贴,图片文件命名为icon.png,点击OK

15.3 复制图片路径

右键resources下的images下的icon.pngCopy Path/Reference…,选择Path From Content Root

15.4 编写代码

在start中使用getIcons方法添加窗口图标

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("hiJavaFX");
        String IconUrl = this.getClass().getResource("/resources/images/icon.png").toString();
        primaryStage.getIcons().add(new Image(IconUrl));
        primaryStage.show();
    }

16、设置窗口尺寸

在start中使用setWidth方法和setHeight方法设置窗口尺寸

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("hiJavaFX");
        String IconUrl = this.getClass().getResource("/resources/images/icon.png").toString();
        primaryStage.getIcons().add(new Image(IconUrl));
        primaryStage.setWidth(400);
        primaryStage.setHeight(300);
        primaryStage.show();
    }

17、禁止修改窗口尺寸

在start中使用setResizable方法向其传入false,禁止修改窗口尺寸

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("hiJavaFX");
        String IconUrl = this.getClass().getResource("/resources/images/icon.png").toString();
        primaryStage.getIcons().add(new Image(IconUrl));
        primaryStage.setWidth(800);
        primaryStage.setHeight(300);
        primaryStage.setResizable(false);
        primaryStage.show();
    }

18、加载一张背景图片

18.1 准备图片

请添加图片描述

18.2 在IDEA中导入图片

复制图片文件,选中images,Ctrl+V粘贴,图片文件命名为background.png,点击OK

18.3 写代码

primaryStage里加载一个Scene,Scene里加载一个Pane,使用Pane的setBackground方法设置背景图片

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("hiJavaFX");
        String IconUrl = this.getClass().getResource("/resources/images/icon.png").toString();
        primaryStage.getIcons().add(new Image(IconUrl));
        primaryStage.setWidth(800);
        primaryStage.setHeight(300);
        primaryStage.setResizable(false);
        
        Pane root = new Pane();
        String BackgroundImageUrl = this.getClass().getResource("/resources/images/background.png").toString();
        BackgroundImage backgroundImage = new BackgroundImage(
                new Image(BackgroundImageUrl),
                null,
                null,
                null,
                new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO, false, false, true, true)
        );
        root.setBackground(new Background(backgroundImage));
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        
        primaryStage.show();
    }

19、显示文字

添加两个label,显示文字

    @Override
    public void start(Stage primaryStage) {
        // 省略
        root.setBackground(new Background(backgroundImage));

        Label label = new Label("JavaFX");
        label.setStyle("-fx-font-size: 45px; -fx-text-fill: black;");
        label.setLayoutX(315);
        label.setLayoutY(26);
        root.getChildren().add(label);

        Label label2 = new Label("  JavaFX是一个开源的下一代客户端应用平台,适用于基于\n" +
                "Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公\n" +
                "司的共同努力的成果,目的是为开发丰富的客户端应用提供\n" +
                "一个现代、高效、功能齐全的工具包。");
        label2.setStyle("-fx-font-size: 27px; -fx-text-fill: black;");
        label2.setLayoutX(28);
        label2.setLayoutY(101);
        root.getChildren().add(label2);

        Scene scene = new Scene(root);
        primaryStage.setScene(scene);

        primaryStage.show();
    }

20、换一张无字背景图

导入这张图,命名为background2.png
请添加图片描述

String BackgroundImageUrl = this.getClass().getResource("/resources/images/background.png").toString();

改为

String BackgroundImageUrl = this.getClass().getResource("/resources/images/background2.png").toString();

21、最终效果

在这里插入图片描述

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.layout.*;
import javafx.stage.Stage;

import java.io.File;

public class Main extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("hiJavaFX");
        String IconUrl = this.getClass().getResource("/resources/images/icon.png").toString();
        primaryStage.getIcons().add(new Image(IconUrl));
        primaryStage.setWidth(800);
        primaryStage.setHeight(300);
        primaryStage.setResizable(false);

        Pane root = new Pane();
        String BackgroundImageUrl = this.getClass().getResource("/resources/images/background2.png").toString();
        BackgroundImage backgroundImage = new BackgroundImage(
                new Image(BackgroundImageUrl),
                null,
                null,
                null,
                new BackgroundSize(BackgroundSize.AUTO, BackgroundSize.AUTO,
                        false, false, true, true)
        );
        root.setBackground(new Background(backgroundImage));

        Label label = new Label("JavaFX");
        label.setStyle("-fx-font-size: 45px; -fx-text-fill: black;");
        label.setLayoutX(315);
        label.setLayoutY(26);
        root.getChildren().add(label);

        Label label2 = new Label("  JavaFX是一个开源的下一代客户端应用平台,适用于基于\n" +
                "Java构建的桌面、移动端和嵌入式系统。 它是许多个人和公\n" +
                "司的共同努力的成果,目的是为开发丰富的客户端应用提供\n" +
                "一个现代、高效、功能齐全的工具包。");
        label2.setStyle("-fx-font-size: 27px; -fx-text-fill: black;");
        label2.setLayoutX(28);
        label2.setLayoutY(101);
        root.getChildren().add(label2);

        Scene scene = new Scene(root);
        primaryStage.setScene(scene);

        primaryStage.show();
    }
}

22、打包jar

(打包之前清理一下图片,使用了background2.png但是没用background.png,那么就可以删除background.png再打包)
IDEA,菜单栏,File,ProjectStructure…(Ctrl+Alt+Shift+S),Artifacts
(右侧如果有内容则点击-清空)
点击+,JAR > From modules with dependencies…,
在这里插入图片描述
选择Main Class,(其他网上教程说要修改META-INF的目录,可是IDEA已经改好了,就是以src结尾的,不用改了)
点击OK,点击OK
在这里插入图片描述
你以为下一步是点击+,添加图片目录?错,直接点击OK
在这里插入图片描述
菜单栏,Build,Build Artifact,Build
在这里插入图片描述
打包位置:IdeaProjects\hijavafx\out\artifacts\hijavafx_jar\hijavafx.jar
打包后和打包前效果一致,图片显示正常(jar文件大小56KB,bankground2.png30多KB,icon.png20多KB,正好对应上)

23、打包EXE(exe4j)(自带jre)

23.1 告知exe可执行文件,去固定位置找jre

模仿第24步,重点在exe4j的第6步,配置JRE的步骤
Minimum version和Maximum version都输入17

展开高级选项,点击Search sequence
清空自带的设置项(你总不能指望别人安装的jre恰好还自带javafx吧)

点击绿色加号,类型设置为Directory,Directory手动输入.\jre,点击确定
在这里插入图片描述
点击下一步
Choose the preferred VM使用默认设置,点击下一步
其余操作继续参考第23步生成exe文件

23.2 只是告知exe去固定位置找jre是没用的,你得真的给他一个jre

参考步骤4下载一份JRE
此时Package Type选择Full JRE,用不着Full JDK
下载ZIP格式的

解压后的文件夹改名为jre,并放置到exe4jfolder文件夹
路径举例:exe4jfolder\hijavafx.exe
路径举例:exe4jfolder\jre\bin\client\jvm.dll

清理exe4jfolder文件夹,只保留hijavafx.exe和解压的jre文件夹
双击exe可以运行
(嫌jre文件夹太大的可以自行精简jre)

24、打包EXE(exe4j)(需要jre)

24.0 注册exe4j

去搜索引擎搜索exe4j的密钥\注册码,此处省略

24.1 新建文件夹

新建文件夹,命名为exe4jfolder,用于放置打包exe的所需文件

24.2 复制jar包

IdeaProjects\hijavafx\out\artifacts\hijavafx_jar\hijavafx.jar复制一份放置到exe4jfolder文件夹

24.2 准备一个ico图标

下载greenfish,用项目中的icon.png生成一个icon.ico放置到exe4jfolder文件夹

24.3 下载安装exe4j

exe4j下载地址

24.4 使用exe4j将jar打包成exe

打开exe4j,点击下一步跳过欢迎界面,每完成一步都点击下一步按钮(exe4j只认下一步按钮,老老实实按就行了)
2. Proect type"JAR in EXE" mode
3. Application info
Short name of your application:hijavafx
Output directory:选择exe4jfolder文件夹
4. Executable info
Executable type:已经选择了GUI application,所以不用动
Executable name:hijavafx
勾选Icon File,并选择exe4jfolder文件夹中的icon.ico文件
5. Java invocation
点击绿色加号,Archive选项选择exe4jfolder文件夹中的hijavafx.jar文件
在这里插入图片描述
Main class from Class path:选择Main,确定
6. JRE
Minimum version:17
Maximum version:17
7. Splash screen:点击下一步按钮跳过
8. Message:点击下一步
到第9步时,软件将运行,并提示exe4j has finished
点击Exit退出软件
生成位置:exe4jfolder\hijavafx.exe

24.5 运行

运行时会提示该软件由exe4j生成,这是因为这个软件是付费软件
在这里插入图片描述
在新电脑上会找不到JRE。
???还得装JRE你打的什么包?会装jre我用你说???
在这里插入图片描述

25、打包EXE(launch4j)(自带jre)

访问保存在sourceforge上的launch4j,下载launch4j
新建文件夹launch4jfolder,里面放hijavafx.jar,icon.ico和一份Liberica的jre
在这里插入图片描述
设置截图中的Output fileJarIcon三项
在这里插入图片描述
删除默认值
在这里插入图片描述
改为./jre,并填写搜索版本(这软件死脑筋,一个填17.0.7,另一个必须得17.0.6或者其他小一号的版本)
在这里插入图片描述
点击齿轮图标保存一个xml格式的配置文件到launch4jfolder文件夹后自动生成exe
在这里插入图片描述
生成完毕
在这里插入图片描述
在这里插入图片描述
运行报错(说明确实是找到了jre位置了),点确定当没看见就行了,软件成功运行
在这里插入图片描述

29、(放弃)下载Eclipse安装器

2023‑03版本

  1. 南京大学镜像站下载eclipse-inst-jre-win64.exe
  2. 清华大学镜像站下载eclipse-inst-jre-win64.exe
  3. 中国科学技术大学镜像站下载eclipse-java-2023-03-R-win32-x86_64.zip(这个是Eclipse本体)
  4. 访问Eclipse官网,直接点击下载
  5. 访问历史版本下载其他版本,例如2020-12版本

30、(放弃)运行Eclipse安装器,安装Eclipse

打开eclipseinstaller by Oomph
点击第一项Eclipse IDE for Java Developers
自动生成JDK路径和安装目录设置,可以不用改动
直接点击INSTALL安装
将会弹出用户协议,点击Accept Now
安装完毕后关闭eclipseinstaller by Oomph

31、(放弃)配置Eclipse

开始菜单找到并打开Eclipse IDE for Java Developers - 2023-03
Workspace可以设置为其他目录,点击Launch

31.1 设置中文

访问语言包下载地址
菜单栏,Help,Install New Software…
点击Add

南京大学镜像:https://mirrors.nju.edu.cn/eclipse/technology/babel/update-site/latest/
清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/eclipse/technology/babel/update-site/latest/
中国科学技术大学镜像:https://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/latest/

选择一个链接填到Location
点击Add,Pending等待加载
列表向下滑找到并勾选Babel Language Packs in Chinese (Simplified)
取消勾选Contact all update sites during install to find required software
点击Next >,点击Next >
勾选I accept the terms of the license agreement
点击Finish
等待安装
弹出Trust界面,点击Select All,然后点击Trust Selected
安装完成后点击Restart Now,Eclipse将重启

31.2 设置UTF-8

Eclipse,菜单栏,窗口(W),首选项(P),常规,工作空间,文本文件编码(T),其他(O):,设置为UTF-8

31.3 自动提示

Eclipse,菜单栏,窗口(W),首选项(P),Java,编辑器,内容辅助,自动激活
Java的自动激活触发器(J),设置为.qwertyuiopasdfghjklzxcvbnm
点击应用并关闭按钮

31.4 添加JRE

Eclipse,菜单栏,窗口(W),首选项(P),Java,已安装的 JRE,
移出缺省值,就算是LibericaJDK,那也得删除
点击添加(A)…,点击下一步(N) >
点击目录(O)…

32、(放弃)Eclipse

32.0、新建项目

Eclipse,菜单栏,文件(F),新建(N)(Alt+Shift+N),Java 项目
项目名(P),输入hijavafx1
勾选Use default JRE 'LibericaJDK-17-Full' and workspace compiler preferences
直接点击完成(F)

32.1、新建包

左侧,包资源管理器,右键hijavafx1,新建(W),包
名称(M),改为pers.siqiao.hijavafx.lifecycle
点击完成(F)

32.2、新建类

右键pers.siqiao.hijavafx.lifecycle,新建(W),类
名称(M),输入Main
勾选public static void main(String[] args) 想要创建哪些方法存根(占位代码)?
点击完成(F)

32.3、main方法

main方法内,输入sysout的一部分syso,快捷键Alt+/显示模板建议
回车选择sysout - 打印到标准输出
输出这句话System.out.println("hijavafx");
在这里插入图片描述

32.4 运行

上方,工具栏,第7项,点击绿色圆底白色三角形图标运行
在这里插入图片描述
菜单栏,运行(R),运行(R)(Ctrl+F11)

下方控制台显示输出
在这里插入图片描述

32.5 代码格式化

菜单栏,源码(S),格式化(F)(Ctrl+Shift+F)

32.6 继承

public class Main

改为

public class Main extends Application

Eclipse自动添加import语句
在这里插入图片描述
Application居然被标红,说明Eclipse表面上import,其实根本不认识javafx.application.Application
Eclipse 真绝了,越活越回旋,你快都不如 VSCode 了你都
Application cannot be resolved to a type
The type javafx.application.Application is not accessible



请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

压力测试防踩坑指南,压测中要注意的那些事儿

对于一些高频访问接口,压力测试必不可少,本文主要叙述了自己在压测过程中遇到的问题,在此分享,希望能帮助大家避免踩坑,提高效率。 1.pod数量 现象:服务器资源充足,tps上不去,检查发…

OneData 共享同一套数据技术和资产

一、什么是 OneData 体系? 官方:阿里云OneData数据中台解决方案基于大数据存储和计算平台为载体,以OneModel统一数据构建及管理方法论为主干,OneID核心商业要素资产化为核心,实现全域链接、标签萃取、立体画像,以数据…

ASEMI代理ADI亚德诺ADAU1701JSTZ-RL车规级芯片

编辑-Z ADAU1701JSTZ-RL芯片参数: 型号:ADAU1701JSTZ-RL 模拟电源电压:3.3 V 数字电源电压:1.8 V 输入/输出电压:3.3 V 环境温度:25 C 主时钟输入:12.288 MHz 满刻度模拟输入&#xff1…

彻底掌握FreeRTOS中的务通知(Task Notifications)

​在之前的文章中已经讲解了很多种用于任务件通信的机制,包括队列、事件组和各种不同类型的信号量。使用这些机制都需要创建一个通信对象。 事件和数据不会直接发送到接收任务或接收ISR,而是发送到通信对象(也就是发送到队列、事件组、信号量…

2023软考中级《软件设计师》(备考冲刺版) | 操作系统

目录 1.操作体统相关概念 1.1 操作系统的功能 1.2 特殊的操作系统 2.进程管理 2.1进程的概念 2.1.1 线程的概念 2.1.2 进程的状态 2.2 进程调度 2.2.1 PV操作的概念 2.2.2 信号量和PV操作 2.2.3 前趋图与PV操作 3.存储管理 3.1 页式存储 3.2 段式存储 3.3 段页式…

智慧安防小区管控系统解决方案(ppt可编辑)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 智慧安防小区-建设思路及目标 智慧安防小区管控子系统是,按照“数据向上集中、服务向下延伸”的思路,对相关要素进行重点采集,实现社区态势…

【JAVAEE】网络原理之网络通信基础

目录 1. 💋IP地址 1.1 🍟IP地址的格式 1.2 🎁特殊IP地址 2. ✨端口号 2.1 🎃端口号的格式 3. 😘网络协议 3.1 🎨为什么需要网络协议? 3.2 💛网络协议的概念与组成 3.3 &am…

答题积分小程序云开发实战-界面交互篇:首页页面布局样式与逻辑交互开发

微信小程序云开发实战-答题积分赛小程序 界面交互篇:首页页面布局样式与逻辑交互开发 首页效果图 布局思路 5行布局,即5个块级元素,轮播图、通告栏、个人信息、功能区、版权。

将服务器select模型设置为非阻塞,处理更多业务

timeval结构体在头文件为sys/time.h中,定义如下: struct timeval {long tv_sec; /* seconds */long tv_usec; /* and microseconds */ }; 其中tv_sec是秒,tv_usec是微秒(microsecond )&#xff0…

[单片机框架][bsp层][cx32l003][bsp_tim] Baes TIM 基础定时器配置和使用

文章目录 一、基础定时器介绍二、功能描述(1) Buzzer 功能 三、示例代码(PWM) 一、基础定时器介绍 基础定时器 Base Timer 包含两个定时器 TIM10/11。TIM10/11 功能完全相同。TIM10/11 是同步定时/计数器,可以作为 16/32 位自动重装载功能的定时/计数器&#xff0c…

VS2022配置GDAL

GDAL(Geospatial Data Abstraction Library)是一个用于处理地理空间数据的开源库。它提供了一组功能丰富的API,用于读取、写入、转换和处理各种地理空间数据格式,包括栅格数据(如卫星图像、数字高程模型)和…

Jupyter创建Anaconda多个虚拟环境教程

这里写目录标题 1.1界面化创建虚拟环境1.2命令行创建虚拟环境2.查看是否创建成功3.激活虚拟环境pylessonppt4.更改工作目录5.删除6.查看是否删除成功 1.1界面化创建虚拟环境 1.2命令行创建虚拟环境 conda create -n myenv——name pythonx.xmyenv-name:自己定义的环境名称 pyt…

fastjson反序列化漏洞复现

fastjson反序列化漏洞复现 一.影响版本: Fastjson<1.2.24二.实验过程图三.实验步骤四&#xff0c;实验结果以及参考链接 一.影响版本: Fastjson<1.2.24 二.实验过程图 (踩坑) rmijndi环境&#xff1a;java.sql.SQLException: JdbcRowSet (连接) JNDI 无法连接 2、ldapjn…

上海无纺布制造商【盈兹】申请纳斯达克IPO上市,募资1100万美元

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;来自上海的无纺布制造商【盈兹】&#xff0c;近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为&#xff08;ETZ&#…

Invalid bound statement (not found)的原因以及解决方法

相信我们在学习Mybatis的时候都出现过 Invalid bound statement (not found) 这个错误&#xff0c;一般由以下几种可能导致这个错误 一&#xff1a;mapper方法名 和 mapper.xml id名不对应 例如&#xff1a; mapper&#xff1a; 对应的mapper.xml 这里建议小伙伴们下载一个插…

Linux中的YUM源仓库和NFS文件共享服务

这里写目录标题 一 、YUM仓库源的介绍和相关信息1.1yum相关介绍1.2 Linux系统各家厂商用的安装源1.3 yum下载方式 二 、 yum 仓库源的三种搭建2.1yum 配置本地源2.2创建ftp源2.3 配置http源2.4 配置yum在线源 三 、NFS的简介3.1 什么是NFS3.2 linux中要使用NFS需要下载的软件包…

User Diverse Preference Modeling by Multimodal Attentive Metric Learning

BACKGROUND 现有模型通常采用一个固定向量去表示用户偏好&#xff0c;在假设——特征向量每一个维度都代表了用户的一种特性或者一个方面&#xff0c;这种方式似乎不妥&#xff0c;因为用户对于不同物品的偏好是不一样的&#xff0c;例如因演员喜欢一部电影&#xff0c;而因特…

C++中的vector容器

文章目录 vector的介绍vector的使用vector的定义vector初始化vector iterator的使用vector空间增长问题vector增删改查vector迭代器失效问题 vector的介绍 vector是封装动态数组的顺序容器。   就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。这也就意味着我…

Java核心技术 卷1-总结-15

自己实现的hashCode方法应该与equals方法兼容 Java核心技术 卷1-总结-15 视图与包装器子范围不可修改的视图同步视图受查视图 并发线程状态新创建线程可运行线程被阻塞线程和等待线程被终止的线程 视图与包装器 子范围 可以为很多集合建立子范围&#xff08;subrange&#x…

机器学习——朴素贝叶斯

目录 一、贝叶斯 1.什么是贝叶斯 3.贝叶斯下的朴素贝叶斯 二、朴素贝叶斯 1.高斯朴素贝叶斯 2.伯努利朴素贝叶斯 3.多项式朴素贝叶斯 前言 在所有的机器学习分类算法中&#xff0c;朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法&#xff0c;比如决策…