我正在关注 Powns 的教程
https://www.youtube.com/watch?v=keDj9fvzigk
了解如何在 Minecraft 1.8.9 Forge 中制作模组。
我做了和他完全相同的事情,但是当我运行它时,它不起作用。这让我相信这与我的 JDK 版本有关。只是,他没有说他使用哪一个,我应该使用哪个版本?
我尝试过使用最新版本,但不起作用,我目前使用的是 8u5。
我的计数器代码是
package me.BeastModeGamez.arrowCounter;
import net.minecraft.init.Blocks;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
@Mod(modid = ArrowCounter.MODID, version = ArrowCounter.VERSION)
public class ArrowCounter
{
public static final String MODID = "arrowCounter";
public static final String VERSION = "1.0";
@EventHandler
public void init(FMLInitializationEvent event)
{
}
}
我的 counterCommands 代码是
package me.BeastModeGamez.arrowCounter.commands;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
public class arrowCounterCommands extends CommandBase {
@Override
public String getCommandName() {
return "arrowcounter";
}
@Override
public String getCommandUsage(ICommandSender sender) {
return "/" + getCommandName();
}
@Override
public void processCommand(ICommandSender sender, String[] args) throws CommandException {
sender.addChatMessage(new ChatComponentText("Test Command."));
}
@Override
public int getRequiredPermissionLevel() {
return 0;
}
@Override
public boolean canCommandSenderUseCommand(final ICommandSender p_71519_1_) {
return true;
}
}
我希望看到该模组能正常工作,但它却显示未知命令。我认为重要的是两个警告:
Description Resource Path Location Type The compiler compliance specified is 1.6 but a JRE 1.8 is used .org.eclipse.jdt.core.external.folders Compiler Compliance JRE Compiler Compliance Problem
还有
Description Resource Path Location Type The compiler compliance specified is 1.6 but a JRE 1.8 is used MDKExample Compiler Compliance JRE Compiler Compliance Problem
此外,如果您想知道代码是否不再有效,该视频是 3 周前制作的。
所以,总而言之,我的问题是:需要什么来解决这个问题,它是否与警告中所说的 JRE 有关,或者我的代码是否不正确,或者我是否需要更新的 JDK?如果我确实必须更改 JRE,该怎么办?
编辑:我已经修复了这两个错误(并将 jdk 更改为更新的错误),这意味着它很可能不是软件,而是代码,错误现在是(不在问题中 - 未显示),每次我尝试运行它说未知命令的命令。
最佳答案
您需要 Java 8
如果您安装了多个 JDK,您需要确保 Eclipse 指向正确的 JDK,但除非您正在进行其他 Java 开发,否则您可以卸载其他 JDK,然后仅安装您需要的 JDK 。 See this thread 。拥有正确版本的 JDK 通常比使用较新版本并针对较旧规范更容易。
作为引用,Minecraft 1.13 的目标是 Java 9,并且必须重写 Forge 启动器才能支持它(请参阅 this thread )。
但是,无论您拥有什么 JDK,您似乎都将 Eclipse 设置为以 Java 6 运行时为目标,而这正是人们所提示的。请参阅this question来解决这个问题。
关于Java 开发套件与 Minecraft 1.8.9 Forge Modding,需要什么 JDK/JRE,代码是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54171077/