首页 简历|笔试面试

Java桌面开发能找到工作吗?(完结)

  • 25年9月4日 发布
  • 1.78MB 共9页
Java桌面开发能找到工作吗?(完结)Java桌面开发能找到工作吗?(完结)Java桌面开发能找到工作吗?(完结)Java桌面开发能找到工作吗?(完结)Java桌面开发能找到工作吗?(完结)

Java 桌面开发能找到工作吗?(完结)

前言

不得不承认,现在已经是 Web 时代,或者移动互联网时代,PC 的桌面应用开发大部分也

都局限在行业应用软件上,比如说生产力效率提升的工具类的桌面应用(postman、

Intellij IDEA 等等)。

那 Web 盛行的今天,桌面应用开发还有意义吗?

当然有意义啦,因为我们在用的很多工具都属于桌面应用开发的范畴,比如说前面提到的

postman、Intellij IDEA 等。

包括最近要替代 postman 的国产软件 apipost 等等,都属于桌面应用。

• Mail(outlook 等)

• IDE(IntelliJ/WebStorm/VSCode/PyCharm……)

• 浏览器(chrome/Firefox/opera……)

• 办公套装(MSOffice/WPS/Adobe 系列/PDF 查看批注……)

• 本地工具( Navicat/SwitchHost/Typora/Postman )

• 笔记思绪( OneNote/Xmind/各种 TodoList…… )

• 媒体播放( 网易云音乐/qq 音乐…… )

• 生产/工业控制(CAD,各种车间操作台…… )

• PC 游戏(绝地求生、孤岛危机、极品飞车……)

桌面应用开发常见的技术框架

框架/类库

Qt(C++图形用户界面应用程序开发框架)

WPF(微软用户界面框架)

WinForm

MFC(微软类库)

Swing/JavaFx/SWT

NW.js(node-webkit)

Electron

就上面这些技术框架来看,Electron 是非常有潜力的,因为只要熟悉 JavaScript、HTML、

CSS 就能构建出跨平台的桌面应用程序,尤其是 VSCode、Postman 这些背书。

• 基于 Chromium 和 Node.js

• 由 OpenJS 基金会和一个活跃的贡献者社区管理的开源项目

• 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序

官方文档也有中文版,比较容易入门:https://www.electronjs.org/zh/docs/latest/

和 Web 开发非常相似,看这个熟悉的影子:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-

src 'self'">

<title>Hello World!</title>

</head>

<body>

<h1>Hello World!</h1>

We are using Node.js <span id="node-version"></span>,

Chromium <span id="chrome-version"></span>,

and Electron <span id="electron-version"></span>.

</body>

</html>

再加上一些 JavaScript 代码就可以了。

const { app, BrowserWindow } = require('electron');

const createWindow = () => {

const win = new BrowserWindow({

width: 800,

height: 600,

});

win.loadFile('index.html');

};

app.whenReady().then(() => {

createWindow();

app.on('activate', () => {

if (BrowserWindow.getAllWindows().length === 0) {

createWindow();

}

});

});

app.on('window-all-closed', () => {

if (process.platform !== 'darwin') {

app.quit();

}

});

在控制台运行后就可以看到这样的窗口应用,哈哈哈,不错不错:

fc9cd391-a68a-4c9d-94be-991f11c30ad8.png

针对 Java 同学,如果要走桌面应用路线,可选项就是 Swing/JavaFx/SWT。我们一起来看

下。

Swing/JavaFx/SWT

因为有 Eclipse/Intellij IDEA 做背书,以至于发生了这样一个奇妙的现象。

王二狗:“学校真特么垃圾,竟然还教我们学 Swing/AWT”!

王二黑:“你恐怕不是脑残吧!Intellij IDEA/Eclipse 就是用 Swing/AWT 写的啊”!

早期,Intellij IDEA 应该叫 Java IDE,它的雏形是一个叫 JBuilder 编辑器的插件 IntelliJ

Renamer。那经过二十多年的发展(Intellij IDEA 第一个 release 版本是在 2001 年),

jetbrains 也确实牛逼,不断重写 swing 的组件,造就了伟大的 jetbrains 全家桶,吊打其

他 IDE。

要知道,2000 年的时候 Qt 3.0 还没出来,要等到 2001 年 Qt 3.0 才支持 MacOS。

那想要做跨平台的 IDE,不选 Java 的 Swing 还是真的是没得选。如果真的想学 swing,不

妨看一下这个仓库:

https://github.com/itsonglin/wechat_desktop

4e8d58c7-da56-447d-af30-d1e553e0b714.png

那为什么 JB 不弃坑,选择其他桌面开发工具包呢?比如前文提到的 Electron。

一是早期的电脑性能都很垃圾,根本跑不动。二是,JB 也在研发自己的 UI 框架:

https://www.jetbrains.com/zh-cn/lp/compose-mpp/

788fd512-c461-413d-bc46-7db460473d37.png

这玩意不仅能开发桌面应用,还可以开发 Web 应用。

• Compose for Desktop 为使用 Kotlin 创建桌面应用的用户提供了一种声明和反应式方

法。并且以 JVM 为目标,通过利用强大的原生 Skia 图形库,支持 macOS、Windows

和 Linux。

a8f6ef2b-39d8-4433-bbe9-98dfd08dba55.png

• Compose for Web 提供了多种在 Kotlin 代码中声明用户界面的方式,使开发者可以利

用声明性 DOM API 来完全控制您的网站布局。

dc6f1618-ac4b-48eb-a94c-2e2a21ba3a9f.png

教程在这里:https://github.com/JetBrains/compose-jb

再来说说 JavaFX。

JavaFX 是一个开源的下一代客户端应用平台,适用于基于 Java 构建的桌面、移

动端和嵌入式系统。 它是许多个人和公司的共同努力的成果,目的是为开发丰

富的客户端应用提供一个现代、高效、功能齐全的工具包。

官网:https://openjfx.cn/

Spring Boot+JavaFX2 能开发出来这样的效果,和 WEB 一样风格的 GUI。

67702d9d-b81b-4f85-878e-8e3f5b981247.png

这里还有一个网站收集了很多 GUI 教程(包括 QT、SWT 之类的):

https://www.kancloud.cn/apachecn/zetcode-zh/1950227

JavaFX 在 GitHub 上还有一个星标 6k+ 的库:JFoenix:

https://github.com/sshahine/JFoenix

不少项目在用:

47e162ca-0e66-4a48-8d12-b9e06c450d09.png

A JavaFX Github desktop client(一个 JavaFX 做的 GitHub 桌面版客户端),挺好看的。

2a1e9180-7601-467f-872e-69732adb91f2.png

有一说一

不过说真的,Java 桌面开发的就业环境就不太理想了,除非是去 jetbrains 比较前途,国

内,我到 boss 直聘上搜了一下 Java 桌面开发,呵呵呵

几乎找不到岗位。

Electron 就比较乐观了,薪资待遇真不错。

cbd18d37-3f3d-4dbb-b1a9-c70c6f3e7ba1.png

开通会员 本次下载免费

所有资料全部免费下载! 推荐用户付费下载获取返佣积分! 积分可以兑换商品!
普通用户: 6.62元
网站会员:
本次下载免费

开通网站会员 享专属特权

  • 会员可免费

    下载全部资料!

  • 推荐用户下载

    获取返佣积分!

  • 积分可以

    兑换商品!

一键复制 下载文档 联系客服