MacOS下如何通过命令行指定配置文件启动终端并模拟x86环境运行旧Java应用
MacOS下如何通过命令行指定配置文件启动终端并模拟x86环境运行旧Java应用
嗨,我刚好碰到过类似的需求!M1 Mac上要跑旧的x86 Java应用,还想用指定的Terminal配置自动启动,直接用open命令确实搞不定——因为Terminal并没有提供通过open参数指定配置文件的接口,不过我们可以借助AppleScript来实现这个需求,下面一步步给你讲清楚:
核心思路:用AppleScript调用Terminal的脚本接口
Terminal支持AppleScript自动化,可以通过它指定启动的配置文件,同时自动执行x86模拟命令和Java程序。
1. 基础命令直接执行
如果你只是想临时在终端里跑一次,直接执行这条命令就行(记得替换成你的配置文件名和Java命令):
osascript -e 'tell application "Terminal" to do script "arch -x86_64 java -jar /path/to/your/old-app.jar" in new window with profile "你的配置文件名"'
in new window:强制新开一个窗口,避免影响现有终端会话"你的配置文件名":替换成你Terminal里已经创建好的配置文件名称(比如你手动建的叫“x86环境”就填这个)arch -x86_64 java -jar ...:这部分就是你要执行的x86模拟命令和Java应用启动指令
2. 做成可双击运行的.command脚本
如果你想做成自动脚本,方便双击执行,按下面的步骤来:
第一步:创建脚本文件
打开文本编辑器(比如TextEdit),粘贴下面的内容:
#!/bin/bash # 配置你的参数 TERMINAL_PROFILE="x86环境" # 替换成你的Terminal配置文件名 JAVA_APP_PATH="/path/to/your/old-java-app.jar" # 替换成旧Java应用的路径 # 组装要执行的命令(如果需要执行完保持窗口不关闭,就加上; exec $SHELL) RUN_COMMAND="arch -x86_64 java -jar \"$JAVA_APP_PATH\"; exec $SHELL" # 调用AppleScript启动Terminal并执行命令 osascript -e "tell application \"Terminal\" to do script \"$RUN_COMMAND\" in new window with profile \"$TERMINAL_PROFILE\""
第二步:保存并设置权限
- 把文件保存为
run-old-java-app.command(注意后缀必须是.command) - 打开终端,给脚本加执行权限:
chmod +x /path/to/run-old-java-app.command
第三步:运行脚本
现在你直接双击这个.command文件,就会自动打开一个指定配置的Terminal窗口,自动切换到x86环境并启动你的旧Java应用啦!
一些小细节提醒
- 如果你的配置文件名或者Java应用路径里有空格,一定要用双引号包裹,避免命令出错
- 如果不需要保持窗口打开,把
RUN_COMMAND里的; exec $SHELL去掉就行,程序执行完窗口会自动关闭 - 要是你还没创建Terminal配置文件,可以先手动打开Terminal,通过
终端 > 设置新建一个,设置好你喜欢的外观就行,不需要额外配置Shell,因为我们已经在命令里指定了arch -x86_64
备注:内容来源于stack exchange,提问作者E. Fabris
相关产品推荐
相关产品推荐

