找回密码
 初始化身份识别芯片
查看: 2246|回复: 10

求助,java 文件如何编译

[复制链接]

巡洋大副

发表于 2022-2-28 16:47:40 | 显示全部楼层 |阅读模式
想要自己写个技能mod,好像不能支持 java 文件,安装好JDK之后尝试编译一直出错,不知要怎么处理,求指点。

巡洋大副

 楼主| 发表于 2022-2-28 16:48:22 | 显示全部楼层
本帖最后由 夜游神 于 2022-2-28 16:52 编辑
  1. package com.fs.starfarer.api.impl.campaign.skills;

  2. import com.fs.starfarer.api.Global;
  3. import com.fs.starfarer.api.characters.CharacterStatsSkillEffect;
  4. import com.fs.starfarer.api.characters.DescriptionSkillEffect;
  5. import com.fs.starfarer.api.characters.LevelBasedEffect;
  6. import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
  7. import com.fs.starfarer.api.util.Misc;
  8. import java.awt.Color;

  9. public class OfficerManagement {
  10.   public static float NUM_OFFICERS_BONUS = 2.0F;
  11.   
  12.   public static float CP_BONUS = 2.0F;
  13.   
  14.   public static class Level0 implements DescriptionSkillEffect {
  15.     public String getString() {
  16.       int baseOfficers = (int)Global.getSector().getPlayerStats().getOfficerNumber().getBaseValue();
  17.       return "" + baseOfficers + ".";
  18.     }
  19.    
  20.     public Color[] getHighlightColors() {
  21.       Color h = Misc.getDarkHighlightColor();
  22.       return new Color[] { h };
  23.     }
  24.    
  25.     public String[] getHighlights() {
  26.       int i = (int)Global.getSector().getPlayerStats().getOfficerNumber().getBaseValue();
  27.       return new String[] { i };
  28.     }
  29.    
  30.     public Color getTextColor() {
  31.       return null;
  32.     }
  33.   }
  34.   
  35.   public static class Level1 implements CharacterStatsSkillEffect {
  36.     public void apply(MutableCharacterStatsAPI stats, String id, float level) {
  37.       stats.getOfficerNumber().modifyFlat(id, OfficerManagement.NUM_OFFICERS_BONUS);
  38.     }
  39.    
  40.     public void unapply(MutableCharacterStatsAPI stats, String id) {
  41.       stats.getOfficerNumber().unmodify(id);
  42.     }
  43.    
  44.     public String getEffectDescription(float level) {
  45.       return "+" + (int)OfficerManagement.NUM_OFFICERS_BONUS + " ;
  46.     }
  47.    
  48.     public String getEffectPerLevelDescription() {
  49.       return null;
  50.     }
  51.    
  52.     public LevelBasedEffect.ScopeDescription getScopeDescription() {
  53.       return LevelBasedEffect.ScopeDescription.NONE;
  54.     }
  55.   }
  56.   
  57.   public static class Level1B implements CharacterStatsSkillEffect {
  58.     public void apply(MutableCharacterStatsAPI stats, String id, float level) {
  59.       stats.getCommandPoints().modifyFlat(id, OfficerManagement.CP_BONUS);
  60.     }
  61.    
  62.     public void unapply(MutableCharacterStatsAPI stats, String id) {
  63.       stats.getCommandPoints().unmodify(id);
  64.     }
  65.    
  66.     public String getEffectDescription(float level) {
  67.       return "+" + (int)OfficerManagement.CP_BONUS + " ;
  68.     }
  69.    
  70.     public String getEffectPerLevelDescription() {
  71.       return null;
  72.     }
  73.    
  74.     public LevelBasedEffect.ScopeDescription getScopeDescription() {
  75.       return LevelBasedEffect.ScopeDescription.FLEET;
  76.     }
  77.   }
  78. }
复制代码

星域军阀

高级机师译码专家通讯记者

发表于 2022-2-28 18:50:35 | 显示全部楼层
本帖最后由 厉害啊 于 2022-2-28 18:52 编辑


要编译建议参考这个教程:https://fractalsoftworks.com/forum/index.php?topic=10057.0,一步到位

点评

感谢指导,以前版本有自己做过是不用编译,但现在版本用以前的方法不行,加载就出错  详情 回复 发表于 2022-2-28 18:56
在玩神枪

巡洋大副

 楼主| 发表于 2022-2-28 18:56:27 | 显示全部楼层
本帖最后由 夜游神 于 2022-2-28 19:00 编辑

感谢指导,以前版本做的MOD正常,但现在版本用以前的方法不行,加载就出错

10338 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.RuntimeException: Error loading [data.characters.skills.oms2$Level1]
java.lang.RuntimeException: Error loading [data.characters.skills.oms2$Level1]
        at com.fs.starfarer.loading.scripts.ScriptStore$3.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: data.characters.skills.oms2$Level1
        at org.codehaus.janino.JavaSourceClassLoader.findClass(JavaSourceClassLoader.java:179)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 2 more

从游戏jar内部导出的java文件也是出错,
船插mod可以正常使用java文件,就是技能mod会出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?初始化身份识别芯片

×

势力巨擘

发表于 2022-2-28 21:25:39 | 显示全部楼层
说来,你这个报错是找不到一个叫 oms2 的类里的 叫 Level1 的子类
但是你的代码的类名是 OfficerManagement 欸

点评

OfficerManagement.java是从starfarer.api.jar 导出的文件,oms2.java 是修改的,都试过不能加载。  详情 回复 发表于 2022-2-28 21:33

巡洋大副

 楼主| 发表于 2022-2-28 21:33:08 | 显示全部楼层
钟离云初 发表于 2022-2-28 21:25
说来,你这个报错是找不到一个叫 oms2 的类里的 叫 Level1 的子类
但是你的代码的类名是 OfficerManagement ...

OfficerManagement.java是从starfarer.api.jar 导出的文件,oms2.java 是修改的,都试过不能加载。

点评

我不太懂这个游戏是怎么操作的哈 不过从java语言来说的话,你如果编译之后有一个oms2$Level1.class的文件,然后将其放到正确的包的位置不应该有问题才是  详情 回复 发表于 2022-2-28 22:17

势力巨擘

发表于 2022-2-28 22:17:47 | 显示全部楼层
夜游神 发表于 2022-2-28 21:33
OfficerManagement.java是从starfarer.api.jar 导出的文件,oms2.java 是修改的,都试过不能加载。 ...

我不太懂这个游戏是怎么操作的哈
不过从java语言来说的话,你如果编译之后有一个oms2$Level1.class的文件,然后将其放到正确的包的位置不应该有问题才是

点评

明白,只是没有学过JAVA不会编译,再研究其他方法吧,多谢。  详情 回复 发表于 2022-2-28 22:44

巡洋大副

 楼主| 发表于 2022-2-28 22:44:44 | 显示全部楼层
钟离云初 发表于 2022-2-28 22:17
我不太懂这个游戏是怎么操作的哈
不过从java语言来说的话,你如果编译之后有一个oms2$Level1.class的文件 ...

明白,只是没有学过JAVA不会编译,再研究其他方法吧,多谢。

战列舰长

发表于 2022-4-21 23:16:06 | 显示全部楼层
OK,留个记号,忘了再来学习

势力巨擘

发表于 2022-4-21 23:35:45 | 显示全部楼层
现版本可以直接用.java文件而非.class文件的,顶天是别人看你代码篡改你代码更方便点
只要你不想把这个发出来或者不在乎就可以随便
前两天我就想改技能来着,java直接用就行了
虽然最后放弃了,不过是因为要写的其他东西比较烦,我又没有一定改的理由

点评

怎么不编译直接用java文件啊?  详情 回复 发表于 2022-7-1 03:58

战列舰长

发表于 2022-7-1 03:58:19 | 显示全部楼层
Soul_liu 发表于 2022-4-21 23:35
现版本可以直接用.java文件而非.class文件的,顶天是别人看你代码篡改你代码更方便点
只要你不想把这个发出 ...

怎么不编译直接用java文件啊?
*滑块验证:

本版积分规则

Archiver|手机版|小黑屋|远行星号中文论坛

GMT+8, 2024-4-26 05:16

Powered by Discuz! X3.5

© 2001-2077 Tencent Cloud | Durian Software Studio

快速回复 返回顶部 返回列表