当前位置: 首页 > news >正文

在mac上安装sh脚本文件

要将 jd-gui.sh 脚本转换为在 macOS ARM 系统上带有自定义图标的可点击运行的程序,你可以通过创建一个应用程序包(.app)来实现。以下是详细步骤:

步骤 1:创建应用程序包目录结构

应用程序包实际上是一个特殊的目录,其结构遵循一定的规范。首先,创建一个新的目录,作为你的应用程序包。目录名应以 .app 结尾,例如 JD-GUI.app

mkdir -p JD-GUI.app/Contents/MacOS

步骤 2:复制脚本到应用程序包

jd-gui.sh 脚本复制到 JD-GUI.app/Contents/MacOS 目录中,并确保脚本具有可执行权限。

cp jd-gui.sh JD-GUI.app/Contents/MacOS/
chmod +x JD-GUI.app/Contents/MacOS/jd-gui.sh

步骤 3:创建应用程序包的 Info.plist 文件

Info.plist 文件是应用程序包的配置文件,它包含了应用程序的各种信息,如名称、版本、图标等。在 JD-GUI.app/Contents 目录下创建 Info.plist 文件,并添加以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>CFBundleExecutable</key><string>jd-gui.sh</string><key>CFBundleIconFile</key><string>icon.icns</string><key>CFBundleIdentifier</key><string>com.example.jdgui</string><key>CFBundleInfoDictionaryVersion</key><string>6.0</string><key>CFBundleName</key><string>JD-GUI</string><key>CFBundlePackageType</key><string>APPL</string><key>CFBundleShortVersionString</key><string>1.0</string><key>CFBundleVersion</key><string>1</string>
</dict>
</plist>

步骤 4:准备自定义图标

你需要准备一个 .icns 格式的图标文件。如果你只有其他格式的图标(如 .png),可以使用 macOS 自带的 iconutil 工具将其转换为 .icns 格式。以下是转换步骤:

  1. 创建一个临时目录,用于存放不同尺寸的图标:
mkdir icon.iconset
  1. 将不同尺寸的图标(如 16x16、32x32、128x128 等)复制到 icon.iconset 目录中,并按照以下命名规则命名:
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
  1. 使用 iconutil 工具将图标集转换为 .icns 文件:
iconutil -c icns icon.iconset -o icon.icns

步骤 5:将图标文件复制到应用程序包

将生成的 icon.icns 文件复制到 JD-GUI.app/Contents/Resources 目录中。

mkdir -p JD-GUI.app/Contents/Resources
cp icon.icns JD-GUI.app/Contents/Resources/

步骤 6:将应用程序包移动到应用程序文件夹

JD-GUI.app 移动到 /Applications 文件夹中,这样你就可以在程序坞中找到它并点击运行。

mv JD-GUI.app /Applications/

现在,你应该可以在程序坞中看到带有自定义图标的 JD-GUI 应用程序,点击它即可运行 jd-gui.sh 脚本。

相关文章:

  • Unity编辑器-获取Projectwindow中拖拽内容的路径
  • 科技新底座揭幕!2025 MWC上海锚定AI+、5G融合、双区创新三大引擎
  • 人工智能时代汽车营销如何创新突破?云徙科技汽车营销智能体助力车企立足数智化转型
  • 从流量到变现:知识IP商业化的底层逻辑|创客匠人解析
  • Nginx 负载均衡、高可用及动静分离
  • RabbitMQ配置镜像
  • 监控视频云解决方案详解
  • vue3 双容器自动扩展布局 根据 内容的多少 动态定义宽度
  • matlab实现非线性Granger因果检验
  • windows使用命令行查看进程信息
  • 【Spring AI】MCP Server实现多实例部署
  • Flutter:步骤条组件
  • Flutter项目编译到鸿蒙模拟器报错
  • Flutter Android打包和发布Build APK
  • 国产数据库StarRocks在数栈轻量化数据开发的全流程实践
  • 【论文解读】OpenR:让大模型“深思熟虑”的开源框架
  • 苹果WWDC 2025 技术趋势分析
  • 【王阳明代数集合论基础】情感分析之句子的基本结构
  • 通过SMS凭据管理系统,实现数据库密码、服务器密码、Token等机密信息的临时授权和安全合规使用
  • 一名高级运维工程师,一台新服务器,安装windows系统后,在网络攻防(护网行动)形式下,应该怎么做安全加固?
  • 做网站除了买域名还有什么/求老哥给几个靠谱的网站
  • 廊坊做网站的大公司/做seo推广公司
  • 网站空间商那个好/自助建站的优势
  • 网站流量怎么赚钱/企业网络推广计划书
  • 网站设为首页加入收藏/阿里大数据官网
  • 建设网站需要什么资质吗/微信seo排名优化软件