带有Minecraft 1.8.9 Forge Modding的Java开发套件,需要什么JDK / JRE,代码正确吗?

时间:2019-01-13 16:54:29

标签: java minecraft minecraft-forge

我正在关注Powns的教程

https://www.youtube.com/watch?v=keDj9fvzigk

关于如何在Minecraft 1.8.9 Forge中制作mods。

我做了和他完全一样的事情,但是当我运行它时,它没有用。这使我相信这与我的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;
    }

}

我希望看到mod可以正常工作,但它会显示未知命令。我认为重要的是以下两个警告:

  

描述资源路径位置类型   指定的编译器遵从性为1.6,但使用的是JRE 1.8。.org.eclipse.jdt.core.external.folders编译器遵从性JRE编译器遵从性问题

还有

  

描述资源路径位置类型   指定的编译器符合性是1.6,但使用的是JRE 1.8 MDKExample编译器符合性JRE编译器符合性问题

此外,如果您想知道代码是否不再起作用,该视频是在3周前制作的。

因此,总而言之,我的问题是:需要解决什么,它是否与警告中所说的JRE有关,或者我的代码不正确,还是我需要更新的JDK?如果我必须更改JRE,怎么办?

编辑:我已经修复了这两个错误(并将jdk更改为更新的错误),这意味着它很可能不是软件,而是代码,现在我每次尝试尝试时都出错(没有出现问题-未显示)。运行显示未知命令的命令。

1 个答案:

答案 0 :(得分:3)

您需要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来解决。