Java 开发套件与 Minecraft 1.8.9 Forge Modding,需要什么 JDK/JRE,代码是否正确?

标签 java minecraft minecraft-forge

我正在关注 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/

相关文章:

java - 在java编程中通过移动鼠标指针在屏幕中向左和向右移动对象

java - JCR_SQL2 如何获得不同的聚合结果

Java Scanner 不等待用户输入

Java Minecraft 插件问题 - 不响应 if 语句?

java - 在 Eclipse 中停止 Minecraft 服务器

java - gradlew setupDecompWorkspace 错误 : Could not reserve enough space

java - 覆盖接口(interface)?

java - 异步日志

java - 对世界中的方 block 重复效果

java - Minecraft Forge 方法数据类型