不懂就问: Java & Python 开发 Linux GUI 程序

2019-09-19 15:50:35 +08:00
 Gatsbywl

需求:

开发一个 Linux 下 GUI 程序,要能按钮实现启动 Oracle,启动 ETL,查看 Oracle 的 status,关闭 Oracle。

背景:

不要跟我说命令多么简单或者 shell 开机自动启动脚本多么容易,这些我都知道。现在就是我们部门有一台自己的服务器,搭建的 APEX 报表,之前一直是我维护,关闭,重启之类的。现在我转调以后,就基本没人会了。有时候重启都很棘手。所以领导要求开发一个桌面应用,Linux 的 GUI 程序,要一个傻瓜式的操作,点击一个启动 Oracle按钮,就能自动启动之类的。

我的想法:

这个按钮直接对应一个 shell 脚本,点击就运行脚本之类的? 这个程序是放在 Linux 平台中的。我接触桌面应用开发很少,之前学过 PYQT,但是好像 pyqt 打包后太臃肿;所以来请教各位大佬们,这种情况下我该怎么实现这个需求?

语言:

Python or Java or C#( C#只是看过,如果框架确实很方便的话,我可以去学)

8371 次点击
所在节点    Linux
57 条回复
izoabr
2019-09-20 08:58:44 +08:00
干脆让重启系统好了,写 rc.local
openthinks
2019-09-20 09:07:25 +08:00
强烈推荐 QT, 楼上也有人说了
Meridian
2019-09-20 09:58:33 +08:00
jenkins 行吗
quan01994
2019-09-20 10:03:31 +08:00
可以用 mono 进行开发。gtk, winform,应该可以符合你的要求。
hoyixi
2019-09-20 10:10:23 +08:00
PyQt or Java Swing

快捷方便
janus77
2019-09-20 10:20:42 +08:00
做成 web 页 然后用 electron 等等的包一层就可以了。
Rwing
2019-09-20 10:28:06 +08:00
c# 的 winform 也可以用 mono 跑在 linux 下,可以尝试一下
https://www.mono-project.com/docs/gui/winforms/
hallwoodzhang
2019-09-20 10:32:41 +08:00
qt(C++, Python)或者 electron(JS, C++)是个人认为最良好的 GUI 开发跨平台方案
xavier007
2019-09-20 10:36:50 +08:00
为什么不做成 web 管理工具,毕竟 Linux 一般都不安装桌面的,如果远程连接还需要开发服务端和客户端,不如直接做成 web
blacklinux
2019-09-20 10:44:07 +08:00
如果只是做非常简单的东西 直接用 python 自带的 tkinter 就行了,简单好学
myhot21
2019-09-20 10:50:09 +08:00
linux 下的 gui 工具,很多都是用 java swing 来做的,跨平台很不错,就是上手有点难度。
qsnow6
2019-09-20 10:52:27 +08:00
tkinter,脚本写好的情况下,分分钟完事
ps1aniuge
2019-09-20 12:01:08 +08:00
47 楼正解。用 c#开发一个图形界面,多么复杂都行,编译成 exe,
在 linux 下 用 mono aaaa.exe 即可运行。win 下也可以运行。
点击按钮后,调用 shell 的 xxx.sh
b00tyhunt3r
2019-09-20 14:33:22 +08:00
楼主外包不?一上午写完
Gatsbywl
2019-09-22 17:33:13 +08:00
@myhot21
@hoyixi 请问一下,现在我已经用 swing 做完了,是用 IEDA 写的,在我的 linux 电脑上已经测试通过了。那么怎么才能打包成一个应用,能直接在另外一台 linux 电脑上运行我的这个程序? 就像别的 linux 程序一样下载即用。
hoyixi
2019-09-23 10:11:14 +08:00
#55 @Gatsbywl
打包成可执行 jar 就行。不过要保证目标系统也装有 JRE。Win 下好像有第三方的打包工具打成 exe,而且可以把 JRE 一起打包。
dallaslu
2019-12-09 16:47:55 +08:00
https://github.com/chriskiehl/Gooey

把命令行应用包装为 GUI

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/602200

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX