fgv2.0 平台 electron 打包桌面应用
whychw
2026-03-19 28a82d58fd6faff1d68ab4decac34c72995283f8
UA 脚本调整
4个文件已修改
3个文件已添加
76 ■■■■ 已修改文件
build/icons/icon.png 补丁 | 查看 | 原始文档 | blame | 历史
dependent_linux/create_desktop.sh 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dependent_linux/setup_service.sh 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
dependent_linux/update.sh 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
setup_service.sh 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/icons/icon.png
dependent_linux/create_desktop.sh
New file
@@ -0,0 +1,47 @@
#!/bin/bash
# 定义函数 获取用户家目录 支持sudo 执行
get_home_dir() {
    if [ -n "$SUDO_USER" ]; then
        #  echo "$(eval echo ~"$SUDO_USER")"
        USER_HOME=$(getent passwd "$SUDO_USER" | cut -d: -f6)
    else
        # echo "$(eval echo ~"$USER")"
        USER_HOME="$HOME"
    fi
    echo "$USER_HOME"
}
USER_HOME=$(get_home_dir)
SH_DIR=$(cd "$(dirname "$0")" && pwd)
chown root:root $SH_DIR/chrome-sandbox
chmod 4755 $SH_DIR/chrome-sandbox
# 配置参数(用户可根据需要修改)
APP_NAME="electron-fg"
EXEC_PATH="$SH_DIR/$APP_NAME"      # 可执行程序路径
ICON_PATH="$SH_DIR/resources/build/icons/icon.png"   # 图标路径
DESKTOP_FILE="$USER_HOME/.local/share/applications/$APP_NAME.desktop"
# 生成 .desktop 文件
cat << EOF > "$DESKTOP_FILE"
[Desktop Entry]
Version=1.0
Type=Application
Name=$APP_NAME
Comment=Launch $APP_NAME
Exec=$EXEC_PATH
Icon=$ICON_PATH
Terminal=false
Categories=Application;Utility;
Encoding=UTF-8
EOF
# 添加可执行权限
chmod +x "$DESKTOP_FILE"
echo "✅ 桌面快捷方式已生成: $DESKTOP_FILE"
echo "请右键点击图标,选择 '允许启动' 或 'Trust and Launch'"
dependent_linux/setup_service.sh
@@ -4,7 +4,7 @@
mkdir -p ~/jdk8/ && cp ./jdk-8u271-linux-x64.tar.gz ~/jdk8/
tar -zxvf ~/jdk8/jdk-8u271-linux-x64.tar.gz -C ~/jdk8/
mkdir -p ~/.config/electron-fg/ && cp ./dependent/fg_v2.0-1.0.jar ~/.config/electron-fg/fgv2.jar
mkdir -p ~/.config/electron-fg/ && cp ./fg_v2.0-1.0.jar ~/.config/electron-fg/fgv2.jar
mkdir -p ~/.config/systemd/user/ && cp ./fgv2.service ~/.config/systemd/user/fgv2.service
dependent_linux/update.sh
New file
@@ -0,0 +1,6 @@
#!/bin/bash
systemctl --user stop fgv2.service
cp ./fg_v2.0-1.0.jar ~/.config/electron-fg/fgv2.jar
systemctl --user start fgv2.service
main.js
@@ -155,7 +155,7 @@
// 终止java进程 并重启服务 linux平台
function stopForLinux() {
  let dir = path.join(__dirname, './stop.sh');
  let dir = path.join(process.cwd(), './stop.sh');
  let stop = child_process.spawn('bash', [dir]);
  // 监听脚本执行
@@ -178,7 +178,7 @@
      log.info(stde);
      if (err) {
        log.error('重启服务失败:' + err);
        let dir = path.join(__dirname, './setup_service.sh');
        let dir = path.join(process.cwd(), './setup_service.sh');
        child_process.exec(`bash "${dir}"`, (error, stdout, stderr) => {
          if (error) {
            log.error('执行失败:' + error);
@@ -192,9 +192,9 @@
      }
      if (stde) {
        log.error(`重启服务错误: ${stde}`);
        let dir = path.join(__dirname, './setup_service.sh');
        let dir = path.join(process.cwd(), './setup_service.sh');
        child_process.exec(`bash "${dir}"`, (error, stdout, stderr) => {
          log.info('0000000');
          // log.info('0000000');
          if (error) {
            log.error('执行失败:' + error);
          }
package.json
@@ -17,6 +17,7 @@
    "asar": true,
    "files": [
      "!dependent/**",
      "!dependent_linux/**",
      "getConfig.js",
      "config.json",
      "main.js",
@@ -40,11 +41,9 @@
      "shortcutName": "electronFg"
    },
    "linux": {
      "icon": "build/icons/512x512.png",
      "icon": "./build/icons",
      "artifactName": "${productName}-${version}-linux.${ext}",
      "target": {
        "target": "dir"
      }
      "target": ["dir", "tar.gz"]
    },
    "extraResources": [
      {
@@ -52,8 +51,8 @@
        "to": "../"
      },
      {
        "from": "./dependent/elevate.exe",
        "to": "../resources/elevate.exe"
        "from": "./build/",
        "to": "build"
      }
    ]
  },
setup_service.sh
@@ -4,7 +4,7 @@
mkdir -p ~/jdk8/ && cp ./jdk-8u271-linux-x64.tar.gz ~/jdk8/
tar -zxvf ~/jdk8/jdk-8u271-linux-x64.tar.gz -C ~/jdk8/
mkdir -p ~/.config/electron-fg/ && cp ./dependent/fg_v2.0-1.0.jar ~/.config/electron-fg/fgv2.jar
mkdir -p ~/.config/electron-fg/ && cp ../../fg_v2.0-1.0.jar ~/.config/electron-fg/fgv2.jar
mkdir -p ~/.config/systemd/user/ && cp ./fgv2.service ~/.config/systemd/user/fgv2.service