被神秘未创建类报错打败,望大佬相助
本帖最后由 withe-pt 于 2026-4-19 19:25 编辑各位可能还记得之前有个自制了一坨垃圾,因为id修改导致游戏读取战机失败的家伙来发了个报错贴
是了,我的自制垃圾进化了,然后又出现了一个神秘未创建类报错,和D核一起解决了半天未能找出问题所在,所以,求大佬相助
{:5_128:}
←它改名了,不过里面差不多
這是一個非常經典的 Starsector Mod 開發報錯!
JaninoRuntimeException: SNO: Scanning, parsing and compiling class ... did not create a class file!?
這個錯誤不是因為你的代碼邏輯寫錯(不是少括號或語法錯誤),而是因為 Starsector 內建的即時編譯器 (Janino) 「找不到」或者「對不上」你的檔案。它成功讀取了檔案,但發現裡面的宣告與它預期的路徑不符,於是拒絕生成 Class 檔案。
請立刻檢查以下 4 個最常見的致命盲點(通常是第 1 點造成的):
1. 📂 資料夾名稱與 Package 的「大小寫」不一致 (最常見)
Java 的套件 (Package) 對大小寫是絕對嚴格的。Windows 的資料夾對大小寫不敏感,所以玩家常常忽略這一點。
你的程式碼第一行寫著:package data.CS_MIC_data.ef;
這意味著,你的資料夾路徑必須、絕對要長這樣:
你的Mod資料夾 / data / CS_MIC_data / ef /
常見錯誤: 如果你的資料夾名稱其實是小寫的 cs_mic_data,但程式碼裡寫的是大寫 CS_MIC_data,Janino 就會直接報出你看到的那個錯誤。
解決辦法: 請確保資料夾名稱的大小寫與 package 後面寫的一字不差。
2. 📄 檔案名稱與 Class 名稱不一致
你的類別宣告為:public class CS_baryonLanceEffect
你的檔案名稱必須精準命名為:CS_baryonLanceEffect.java
常見錯誤: 不小心命名成了 CS_BaryonLanceEffect.java(大寫了 B)或者是 cs_baryonlanceeffect.java。請按 F2 仔細檢查檔名大小寫。
3. 💥 .jar 檔與 .java 檔同時存在發生衝突
如果你使用了 IntelliJ IDEA 或 Eclipse 將這個 Mod 編譯成了 .jar 檔案(並且在 mod_info.json 中掛載了這個 jar 檔)。
同時,你又把 CS_baryonLanceEffect.java 這個原始碼檔案留在資料夾裡沒有刪除。
結果: 遊戲引擎會同時讀到編譯好的 class 和沒編譯的 java 檔,產生衝突並丟出這個 did not create a class file 的錯誤。
解決辦法: 如果你已經打包成 .jar,請把 data/CS_MIC_data/ef/ 裡面的 .java 源碼檔案刪除或移到 Mod 資料夾外面。
4. 武器設定檔 (.wpn 或 .csv) 填寫錯誤
請檢查呼叫這個特效的武器 .wpn 檔案。
在武器檔中,應該有一行用來綁定光束特效(Beam Effect),它的格式必須是完整的包裝路徑:
正確寫法: "beamEffect":"data.CS_MIC_data.ef.CS_baryonLanceEffect"
錯誤寫法: 多了空格、斜線用錯(用成 /)、或者是大小寫打錯。
💡 快速總結排查順序:
去看你的資料夾,是不是叫 CS_MIC_data(注意大寫)。
去看你的檔名,是不是叫 CS_baryonLanceEffect.java(注意大小寫)。
如果以上都對,試著把第一行改成全小寫 package data.cs_mic_data.ef;,然後把資料夾也改成全小寫 cs_mic_data,這通常能解決 99% 的 Janino 迷路問題。
===============================================
丟給Gemini分析 你參考一下 zzzdragon 发表于 2026-4-18 23:41
這是一個非常經典的 Starsector Mod 開發報錯!
JaninoRuntimeException: SNO: Scanning, parsing and com ...
感谢建议
但是试过了一遍木有用(悲) zzzdragon 发表于 2026-4-18 23:41
這是一個非常經典的 Starsector Mod 開發報錯!
JaninoRuntimeException: SNO: Scanning, parsing and com ...
好吧,它突然能动了,咱也不知道为什么,总之谢谢啦(
页:
[1]