简介:PIPE 4.3.0 是一款基于 Petri 网的图形化建模与仿真软件,面向软件工程、系统分析与教学实验场景,帮助读者完成并发、同步与竞争等系统行为的建模、动态仿真及性质分析。压缩包共 2391 个文件,约 28.43MB,包含大量 class 编译文件、svn-base 版本文件、png/svg 界面与图形素材、xml/htm 配置和说明、jar 依赖库及少量脚本与属性文件,保留较完整的工程结构与运行素材。该资源已有 1500 人学习,适合需要研究 PIPE 源码结构、复现建模流程或开展 Petri 网课程实践的读者。借助其中的图形界面组件、分析模块与示例素材,可辅助理解可达性分析、覆盖测试、安全性与活性检查等功能,也便于排查运行环境与依赖配置问题。
1. PIPE4.3.0 安装前先看清:Java 桌面程序的版本坑比想象中多
某开发者把 PIPE4.3.0 当成普通桌面安装包,双击压缩包里的 jar,任务栏闪一下就没了;换台机器又能打开,于是以为这是玄学。Petri 建模仿真在 PIPE4.3.0 里依赖 Java 桌面运行环境,装错 JDK、只拷主 jar、把程序放进中文临时目录,都会让建模窗口打不开。课程实验、流程建模、状态空间分析里都能碰到这套环境;新手适合照步骤走,熟手重点看版本取舍和启动参数。先说清环境,再解压启动,后面排错才有抓手,这也是我装 Java 桌面工具的血泪经验。
2. 准备 Java 运行环境:PIPE4.3.0 的 JDK 8、11、17 取舍
PIPE4.3.0 不是原生 exe,运行入口通常是一个主 jar,旁边还可能带 lib 目录和配置文件。安装前先别急着解压,我会先做三件事:查当前 Java 版本、确认JAVA_HOME指向哪里、看机器上是否已经有多套 JDK。PIPE4.3.0 这类 Java 桌面程序对版本很敏感,JDK 太低会报字节码版本错误,JDK 太高又可能碰到图形界面模块化或高 DPI 参数差异。这里不把某个小版本说成硬性要求,常见做法是先用 JDK 8 或 11 的 LTS 版本试跑,报错后再按错误信息换版本,比盲目追新更省时间。
2.1 先判断 PIPE4.3.0 要的是 JRE 还是 JDK
只运行 PIPE4.3.0,JRE 理论上够用;但装环境阶段我建议直接装 JDK。原因很实际:JDK 带javac、jar、jps这些工具,排查主 jar 是否完整、看进程、确认版本都方便。JRE 只负责跑,出了问题你手里少一套诊断工具。PIPE4.3.0 的建模窗口打不开时,先看java -version比反复双击 jar 有用得多。
在 Linux 或 macOS 终端里先跑一遍:
# 查看当前 shell 实际调用的 Java 版本 java -version # 查看 JAVA_HOME 是否为空,空值说明没有显式配置 printf '%s\n' "${JAVA_HOME:-<empty>}" # 查看 java 可执行文件的真实路径,多版本共存时最有用 readlink -f "$(command -v java)"java -version输出的是当前 PATH 里第一个 java,不一定是你要给 PIPE4.3.0 用的那个。JAVA_HOME常见错误是写成.../bin,正确做法是指向 JDK 根目录,例如C:\Java\jdk-11或/usr/lib/jvm/java-11-openjdk。readlink -f用来确认软链接背后到底是哪套 JDK。装完 JDK 后新开一个终端再查,旧终端里的 PATH 不会自动刷新。
提示:PIPE4.3.0 是图形界面程序,不建议用
sudo java -jar启动。用 root 跑会把配置和临时文件写到 root 目录,后面普通用户再打开容易碰到权限问题。
2.2 用 java -version 和报错反推版本
版本选择不要靠猜。先拿当前系统的 Java 跑一次 PIPE4.3.0,如果报UnsupportedClassVersionError,错误里通常会带class file version 55.0这类信息。常见对照关系是:52 对应 Java 8,55 对应 Java 11,61 对应 Java 17。看到这个错误不要改 jar,也不要找“破解版”,换到不低于字节码版本的 JDK 再试。
| 报错里的 class file version | 常见对应 JDK | 处理方向 |
|---|---|---|
| 52.0 | Java 8 | 当前 Java 低于 8 时升级 |
| 55.0 | Java 11 | 用 JDK 8 跑会报错,换 11 或更高 |
| 61.0 | Java 17 | 不要用 8/11 硬跑,换 17 试 |
这张表只用于反推,不代表 PIPE4.3.0 必须锁死某个版本。实际安装时我会先保留两套 JDK:一套 8,一套 11。先用 8 启动,失败后看报错;如果报字节码版本高,就切到 11。切换只在当前终端或启动脚本里做,不全局改系统默认 Java,避免影响别的项目。
2.3 Windows 与 Linux 安装 JDK 的具体落点
Windows 下我一般把 JDK 解压到无空格、无中文的目录,例如C:\Java\jdk-11。用安装器也行,但安装器容易把javapath写进 PATH,后面多版本切换时反而绕。压缩版解压后手动配环境变量更可控:
# 把 JDK 压缩包解压到固定目录,路径不要带中文和空格 Expand-Archive -Path .\jdk-11.zip -DestinationPath C:\Java # 查看解压后的目录层级,确认 JDK 根目录 Get-ChildItem C:\Java # 当前 PowerShell 窗口临时指定 JDK,不影响系统全局设置 $env:JAVA_HOME = "C:\Java\jdk-11" $env:Path = "$env:JAVA_HOME\bin;$env:Path" java -versionExpand-Archive只是解压,JAVA_HOME要指向包含bin的那一层。$env:Path把 JDK 的bin放到最前面,当前窗口里的java就会优先用这套。这个改法只影响当前 PowerShell,关掉窗口就恢复。要长期使用,可以在系统环境变量里配,但我更建议给 PIPE4.3.0 单独写启动脚本,见第 3 章。
Linux 下常见做法是用包管理器装 OpenJDK:
# Debian/Ubuntu 系安装 JDK 11,包名按发行版实际仓库调整 sudo apt update sudo apt install -y openjdk-11-jdk # 多版本共存时注册并切换默认 java sudo update-alternatives --config java # 确认切换结果 java -versionupdate-alternatives --config java会列出已安装的 Java 路径,按编号选择。这里改的是系统默认入口,如果机器上还有别的服务依赖 Java 8,不要随手切全局。更稳妥的做法是记下 JDK 11 的根目录,在 PIPE4.3.0 启动脚本里临时export PATH。安装完用java -version和javac -version各查一次,两者版本不一致通常说明 PATH 里混进了旧 JDK。
2.4 多 JDK 共存时怎么切到 PIPE4.3.0 能跑的那个
多版本共存最容易翻车的点不是装不上,而是“以为切了,其实没切”。Windows 的where java、Linux 的command -v java都要看。下面这段适合在启动 PIPE4.3.0 前临时切版本:
# Linux/macOS:临时把 JDK 11 放到 PATH 最前面 export JAVA_HOME="/usr/lib/jvm/java-11-openjdk" export PATH="$JAVA_HOME/bin:$PATH" # 确认当前窗口用的是 11 java -version # 再启动 PIPE4.3.0,主 jar 名按实际解压结果替换 java -jar "$HOME/apps/pipe430/PIPE4.3.0.jar"export只对当前 shell 生效,适合排错。JAVA_HOME和PATH要成对改,只改JAVA_HOME不改PATH,命令行仍然会调用旧 java。主 jar 名不要照抄示例,解压后看实际文件名。第 3 章会把这类命令固化到启动脚本里,平时不用每次手敲。
3. 落地安装 PIPE4.3.0:Windows、Linux、macOS 的解压与启动
环境备好后再动 PIPE4.3.0 压缩包。安装目录和工作目录要分开:程序目录放解压后的主 jar、lib 和配置,工作目录放你建的 Petri 网模型、导出结果和启动日志。这样升级或重装 PIPE4.3.0 时,模型文件不会被一起删掉。目录名尽量用 ASCII,别放在桌面临时目录、下载目录或中文路径下,后面保存失败和乱码问题会少很多。
3.1 解压目录怎么摆:不要放在中文路径和临时目录
我一般这样摆:
| 目录 | 用途 | 示例 |
|---|---|---|
| 程序目录 | 放 PIPE4.3.0 解压后的主 jar、lib | D:\apps\pipe430 |
| 工作目录 | 放模型文件、导出文件、日志 | D:\pipe-work |
| JDK 目录 | 固定 JDK 根目录 | C:\Java\jdk-11 |
Linux 下用mkdir和unzip落地:
# 建程序目录和工作目录,路径保持 ASCII mkdir -p "$HOME/apps/pipe430" "$HOME/pipe-work" # 解压 PIPE4.3.0 压缩包到程序目录 unzip -q PIPE4.3.0.zip -d "$HOME/apps/pipe430" # 查看解压后的主 jar 和 lib 目录,确认没有漏文件 find "$HOME/apps/pipe430" -maxdepth 2 -type f | sed -n '1,20p'unzip -q安静解压,-d指定目标目录。find只看两层,用来确认主 jar、lib 目录和说明文件是否都在。如果压缩包解压到一半报错,先重新取完整包,不要拿缺文件的目录硬启动。Windows 下对应的是Expand-Archive -Path .\PIPE4.3.0.zip -DestinationPath D:\apps\pipe430,解压后进目录看主 jar 是否直接躺在根层,还是多套了一层文件夹。
注意:只把主 jar 拷到桌面双击,是后面
NoClassDefFoundError的常见来源。PIPE4.3.0 依赖的库通常在 lib 目录里,主 jar 和 lib 的相对位置不要拆散。
3.2 Windows 启动:bat 脚本比双击 jar 更可控
Windows 上双击 jar 容易受文件关联影响:装过解压软件后,jar 可能被关联到解压器,双击只是打开压缩包内容;也可能用错系统默认 Java。写一个start-pipe.bat更稳:
@echo off REM 固定 JDK 11,避免系统默认 Java 被其他软件改掉 set "JAVA_HOME=C:\Java\jdk-11" set "PATH=%JAVA_HOME%\bin;%PATH%" REM 进入工作目录,模型文件默认落在这里 cd /d D:\pipe-work REM 主 jar 名以实际解压结果为准,路径带空格时保留引号 java -Xms512m -Xmx2048m -Dfile.encoding=UTF-8 -jar "D:\apps\pipe430\PIPE4.3.0.jar" pause@echo off关掉命令回显,set "JAVA_HOME=..."用引号包住防止路径空格截断。cd /d才能跨盘符切换工作目录。-Xms和-Xmx是堆内存初始值和上限,-Dfile.encoding=UTF-8统一编码。最后的pause用来在启动失败时留住窗口,不然黑框一闪就看不到报错。脚本可以放桌面快捷方式,但快捷方式的“起始位置”也要指向工作目录。
3.3 Linux 启动:权限、DISPLAY 和桌面会话
Linux 下先确认当前会话有图形显示变量,再启动 PIPE4.3.0:
#!/usr/bin/env bash # 固定 JDK 和主 jar,避免桌面环境里 PATH 不一致 export JAVA_HOME="$HOME/apps/jdk-11" export PATH="$JAVA_HOME/bin:$PATH" # 没有图形显示变量时,GUI 程序打不开窗口 printf 'DISPLAY=%s\n' "${DISPLAY:-<empty>}" cd "$HOME/pipe-work" || exit 1 # 主 jar 名按实际解压结果改,"$@" 用来透传额外参数 exec java -Xms512m -Xmx2048m -Dfile.encoding=UTF-8 \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar" "$@"DISPLAY为空通常说明当前是纯字符终端或没有桌面会话,PIPE4.3.0 的窗口起不来,可能报HeadlessException。这种场景不是换 JDK 能解决的,要回到本地桌面会话运行。脚本用exec让 java 进程替换 shell,关窗口即退出。不要用sudo跑这个脚本,否则工作目录里的模型文件可能变成 root 所有,普通用户下次保存会失败。脚本保存后记得chmod +x start-pipe.sh。
3.4 macOS 启动:Gatekeeper 与 java_home
macOS 上先列已安装 JDK,再用java_home定位:
# 列出机器上的 JDK,注意版本和路径 /usr/libexec/java_home -V # 当前终端临时切到 JDK 11 export JAVA_HOME=$(/usr/libexec/java_home -v 11) export PATH="$JAVA_HOME/bin:$PATH" # 从终端启动能看到报错;双击入口出错时看不到栈信息 java -jar "$HOME/apps/pipe430/PIPE4.3.0.jar"java_home -V的输出里会列出多个版本,-v 11按大版本筛选。如果系统提示应用来源不安全,按系统设置里的正常放行流程处理,不要为了打开一个建模工具去关掉系统安全设置。PIPE4.3.0 从终端启动的好处是报错直接落在终端里,排查时不用猜。工作目录同样建议放在$HOME/pipe-work,别在压缩包所在目录直接建模型。
4. 配置启动参数:PIPE4.3.0 的内存、编码和高 DPI
PIPE4.3.0 能打开窗口只是第一步,参数没配好会在建模和仿真阶段翻车:网一大就OutOfMemoryError,保存中文名文件乱码,高分屏按钮错位点不到。启动参数不要凭感觉堆,先明确每个参数解决什么问题,再写进脚本。下面这套参数适合大多数开发机起步,机器内存小就把-Xmx降下来,别照抄。
4.1 内存参数:-Xms 与 -Xmx 怎么给 PIPE4.3.0 留余量
Java 堆内存由-Xms和-Xmx控制。-Xms是初始堆,-Xmx是上限。PIPE4.3.0 做 Petri 建模仿真时,状态空间分析可能吃掉不少内存,但-Xmx不是越大越好,给太大反而让系统频繁换页。常见起步值是-Xms512m -Xmx2048m,老机器或虚拟机降到-Xmx1024m,大网分析再往上加。
| 参数 | 作用 | 起步建议 | 常见翻车点 |
|---|---|---|---|
-Xms512m | 初始堆大小 | 512m | 设得比-Xmx大,启动直接报错 |
-Xmx2048m | 最大堆大小 | 2048m | 超过物理内存,系统变卡 |
-Dfile.encoding=UTF-8 | 文件编码 | UTF-8 | 只改启动参数,模型路径仍是中文 |
-Dsun.java2d.uiScale=1.25 | 界面缩放 | 1.25 起试 | 盲目设 2.0,按钮跑出窗口 |
# 给 PIPE4.3.0 固定堆内存和编码,主 jar 按实际路径替换 java -Xms512m -Xmx2048m -Dfile.encoding=UTF-8 \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar"-Xms和-Xmx写成一样可以减少运行中扩堆,但桌面工具没必要一开始占满,所以初始 512m 够用。出现OutOfMemoryError: Java heap space时先把-Xmx加到 3072m 或 4096m 试,同时看模型状态数是不是本身太大。出现Unable to create new native thread或系统整体卡死,反而要降内存,别继续加。
4.2 编码与工作目录:中文路径、保存失败和临时文件
编码问题通常不是单一原因:启动参数没设 UTF-8、模型文件名带中文、工作目录在临时目录、文件权限不对,都会表现成保存失败或重开乱码。我的做法是工作目录只用 ASCII,模型文件名也先英文,确认整条保存链路正常后再试中文名。启动时把临时目录也指到工作目录下面,方便清理:
# 建独立临时目录,避免系统临时目录被清掉后找不到残留 mkdir -p "$HOME/pipe-work/tmp" # 同时指定编码和临时目录,工作目录切到模型目录 cd "$HOME/pipe-work" || exit 1 java -Dfile.encoding=UTF-8 -Djava.io.tmpdir="$HOME/pipe-work/tmp" \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar"-Djava.io.tmpdir控制 Java 临时文件落点,排查保存异常时能直接看这个目录。cd到工作目录后再启动,文件选择器默认位置会更接近模型目录。保存失败先看目录写权限,再看文件名是否带特殊字符,最后才怀疑 PIPE4.3.0 本身。用ls -ld看目录权限,用touch在同目录建个空文件测试写入,比反复重装快。
4.3 高 DPI 与图形渲染:按钮错位时改哪个参数
高分屏上 PIPE4.3.0 可能出现工具栏图标很小、按钮文字重叠、对话框按钮点不到。Java 9 以后常见做法是加-Dsun.java2d.uiScale=1.25或1.5,Java 8 对这类参数支持不一致,可能要改系统缩放。不要一上来设 2.0,界面可能直接超出屏幕。先 1.25 试,再 1.5,仍不对就恢复系统缩放,别把参数和系统设置一起改,否则很难判断是哪边生效。
# 高分屏先试 1.25 倍缩放,数值按实际显示效果微调 java -Dsun.java2d.uiScale=1.25 \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar"这个参数只影响 Java2D 的界面缩放,不改模型画布坐标。设完发现菜单栏正常但画布偏移,说明程序内部还有自己的缩放逻辑,回到默认值,改系统显示缩放更稳。Windows 下可以在快捷方式属性里改兼容性 DPI 设置,Linux 下改桌面环境的缩放。每次只改一个变量,排错才有对照。
4.4 把启动参数固化成脚本,不靠记忆
参数调好后写进脚本,不要每次手敲。Windows 的 bat 和第 3 章类似,把内存、编码、工作目录固定;Linux 用start-pipe.sh,macOS 用.command文件也行。脚本里路径带空格一定加引号,JAVA_HOME和PATH成对出现。脚本放程序目录,工作目录单独建,升级 PIPE4.3.0 时只换程序目录。
#!/usr/bin/env bash # PIPE4.3.0 固定启动参数,改路径后保存到程序目录 export JAVA_HOME="$HOME/apps/jdk-11" export PATH="$JAVA_HOME/bin:$PATH" cd "$HOME/pipe-work" || exit 1 exec java -Xms512m -Xmx2048m \ -Dfile.encoding=UTF-8 \ -Dsun.java2d.uiScale=1.25 \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar" "$@""$@"让脚本还能接收额外 JVM 参数或程序参数,排错时不用改脚本。exec让进程号保持单一,关窗口就退出。脚本权限用chmod +x。后面第 5 章排错时,先看这个脚本里的 JDK 路径和 jar 路径有没有被改过,很多“昨天还能用”的问题都出在这里。
5. 排查安装翻车:PIPE4.3.0 启动失败的五类现场
PIPE4.3.0 启动失败时,GUI 程序经常不给完整报错,窗口一闪就退,像个黑匣子。排错顺序我固定为:先看启动方式,再看 Java 版本,再看 jar 和 lib 是否完整,最后看图形会话和编码缩放。下面五类现场覆盖了大多数安装翻车,每条按现象、原因、解决写,照着对照能少走弯路。
5.1 双击没反应:文件关联和启动入口错位
现象:双击 PIPE4.3.0 压缩包里的 jar,任务栏闪一下,窗口没出来;或者双击后打开的是解压软件界面。原因通常有两个:系统把.jar关联到了解压器,双击并没有执行java -jar;或者你双击的是压缩包外层文件,不是解压后的主 jar。还有人把主 jar 单独拷到桌面,lib 目录没跟过去,启动到一半缺类退出。
解决:不要靠双击验证。打开终端或 PowerShell,进到主 jar 所在目录,显式执行java -jar 主 jar 名。Windows 用第 3 章的 bat,Linux 用start-pipe.sh。确认解压目录里主 jar 和 lib 的相对位置没变。双击没反应时先看文件大小,主 jar 只有几 KB 通常是下载不完整或解压不完整,重新取完整包。
# 进入程序目录后显式启动,报错会留在终端里 cd "$HOME/apps/pipe430" || exit 1 java -jar PIPE4.3.0.jarcd到程序目录再执行,能排除工作目录不同导致的相对路径问题。终端里能看到no main manifest attribute、Could not find or load main class这类信息,比双击黑框有用。主 jar 名按实际文件替换,不要照抄示例。
5.2 UnsupportedClassVersionError:JDK 版本比字节码低
现象:启动时报UnsupportedClassVersionError,后面带class file version 55.0或类似数字。原因:当前java版本低于主 jar 编译时使用的 JDK。比如用 JDK 8 跑 Java 11 字节码就会报这个。很多人第一反应是换 jar 或改文件,结果越改越乱。
解决:先java -version确认当前版本,再按报错里的 class file version 对照第 2 章的表。52 用 JDK 8,55 用 JDK 11,61 用 JDK 17。切换只在启动脚本里做,别全局改系统 Java。切完新开终端再查一次,确保 PATH 里第一个 java 是你要的。如果换了 JDK 还报同样的错,检查脚本里JAVA_HOME是否写到了bin目录,或者快捷方式是否绕过了脚本。
# Windows 当前窗口临时切 JDK 11,再启动 PIPE4.3.0 $env:JAVA_HOME = "C:\Java\jdk-11" $env:Path = "$env:JAVA_HOME\bin;$env:Path" java -version java -jar "D:\apps\pipe430\PIPE4.3.0.jar"java -version必须在同一次窗口里查,否则查的是旧环境。-jar后面用绝对路径,避免当前目录不在程序目录。
5.3 NoClassDefFoundError:只拷主 jar 的后果
现象:窗口还没出来就报NoClassDefFoundError或ClassNotFoundException,缺的类名看起来像第三方库。原因:PIPE4.3.0 依赖 lib 目录里的 jar,只拷主 jar、只解压一部分、或者把主 jar 移到别的目录,类路径就断了。还有一种情况是解压时文件名大小写变化,Linux 下找不到类。
解决:保留完整解压目录,主 jar 和 lib 放在同一层关系里,不要单独移动主 jar。用find看 lib 里是否有 jar,确认解压没有报错。启动时用绝对路径指向主 jar,工作目录另设。不要为了“干净”把 lib 删掉。缺类错误里如果出现某个具体库名,回到解压目录搜这个库是否在。
# 查看程序目录下的 jar 分布,确认主 jar 和 lib 都在 find "$HOME/apps/pipe430" -maxdepth 3 -type f -name '*.jar' | sort # 重新解压时先解到临时目录,确认完整后再替换旧目录 unzip -t PIPE4.3.0.zipunzip -t只做完整性检查,不覆盖现有文件。find结果里如果只有主 jar 没有 lib,说明解压不完整。替换目录前先备份工作目录里的模型文件,程序目录可以重来,模型文件别丢。
5.4 HeadlessException:Linux 无图形会话
现象:Linux 下启动报HeadlessException,或者提示No X11 DISPLAY variable was set。原因:当前终端没有图形显示变量,常见于纯字符终端、系统服务方式启动、或者桌面会话没起来。PIPE4.3.0 是 GUI 程序,没有显示服务就开不了窗,换 JDK 没用。
解决:回到本地桌面会话,确认DISPLAY有值再启动。用printf 'DISPLAY=%s\n' "${DISPLAY:-<empty>}"查。没有桌面会话时不要硬跑 GUI,先用命令行确认 Java 和 jar 没问题,再换到有图形界面的环境。不要用sudo启动,root 的显示变量和普通用户经常不一致。
# 查图形显示变量;为空时不要继续启动 GUI printf 'DISPLAY=%s\n' "${DISPLAY:-<empty>}" # 有桌面会话时,在图形终端里执行启动脚本 "$HOME/apps/pipe430/start-pipe.sh"DISPLAY为空说明当前会话没有 X 服务。启动脚本里如果写了exec java,窗口关掉脚本就结束。排错时可以先不加exec,让报错留在终端。
5.5 保存乱码与界面错位:编码、路径、缩放三件事
现象:模型保存后重开文件名乱码,或者保存按钮点了没反应;高分屏上按钮重叠、对话框点不到。原因分三类:启动参数没设 UTF-8;工作目录或文件名带中文和特殊字符;uiScale设得过大或与系统缩放冲突。三类问题经常一起出现,因为大家一次改太多参数。
解决:按顺序改。先固定-Dfile.encoding=UTF-8,工作目录换成 ASCII,模型文件名先用英文;保存成功后再试中文名。界面错位先去掉uiScale恢复默认,再以 1.25、1.5 逐档试。每次只改一个变量,改完重启 PIPE4.3.0 验证。保存失败先看目录权限,用touch测试写入,再看磁盘空间。
# 编码、临时目录、工作目录一次到位,缩放参数先注释掉 cd "$HOME/pipe-work" || exit 1 java -Dfile.encoding=UTF-8 \ -Djava.io.tmpdir="$HOME/pipe-work/tmp" \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar" # 确认目录可写 touch "$HOME/pipe-work/write-test.txt" && rm "$HOME/pipe-work/write-test.txt"touch测试能快速排除权限问题。-Djava.io.tmpdir指向工作目录下的 tmp,保存异常时先清这个目录再试。缩放参数先不加,等保存和启动都正常后再单独调。
6. 验证跑通:用一张最小 Petri 网确认 PIPE4.3.0 真的能用
装完不要只看窗口能不能开,要跑一张最小网。打开 PIPE4.3.0 后新建 Petri 网,放两个库所 P1、P2,放一个变迁 T1,连两条弧:P1 到 T1、T1 到 P2。给 P1 一个初始 token,触发 T1,看 token 是否从 P1 移到 P2。保存模型,关闭软件,重新打开保存文件,确认 token 状态还在。这个动作能同时验证启动、编辑、仿真和文件保存四条链路。
启动时把输出留档,出问题不用靠回忆:
# 启动时把 stdout/stderr 写到日志,GUI 报错少但聊胜于无 mkdir -p "$HOME/pipe-work/logs" java -Xms512m -Xmx2048m -Dfile.encoding=UTF-8 \ -jar "$HOME/apps/pipe430/PIPE4.3.0.jar" \ > "$HOME/pipe-work/logs/pipe-start.log" 2>&12>&1把错误输出并到标准输出,>覆盖写入日志。GUI 程序日志可能不多,但启动失败时能看到 Java 异常。验证项按表走:
| 验证项 | 操作 | 通过标准 |
|---|---|---|
| Java 版本 | 启动脚本里java -version | 与脚本固定 JDK 一致 |
| 主窗口 | 启动 PIPE4.3.0 | 菜单、画布正常显示 |
| 编辑 | 放库所、变迁、连弧 | 图元能选中、能删除 |
| 仿真 | 给 P1 一个 token,触发 T1 | P1 变 0,P2 变 1 |
| 保存重开 | 保存后关闭再打开 | 图结构和 token 状态不丢 |
| 日志 | 看pipe-start.log | 没有异常栈 |
这套最小网跑通后,再导入你真正要做的 Petri 建模仿真模型。出现打不开、保存失败、仿真不动,按第 5 章顺序查:启动方式、JDK 版本、jar 和 lib、图形会话、编码缩放。从那以后我每次装 PIPE4.3.0 都强制先跑java -version和这张最小网,不给自己留“窗口开了就算装好”的后悔药。如果你手头还没有 PIPE4.3.0 压缩包,先按上面把 JDK 和工作目录备好,再从资源入口取包;拿到后别急着双击,先走一遍启动脚本和最小网验证。希望帮到你。
本文还有配套的精品资源,点击获取