hdxzd12 发表于 2024-6-23 08:23

Java程序包org.bukkit.command不存在如何解决

有一个名为CommandExample.java的Java源文件,内容如下:
package com.yourname.yourplugin;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CommandExample implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
      if (sender instanceof Player) {
            Player player = (Player) sender;

            if (args.length < 1) {
                player.sendMessage("Usage: /example <command>");
                return false;
            }

            String commandToExecute = args;
            String result = runProgram(commandToExecute);

            player.sendMessage("The result of the program is: " + result);
            return true;
      }

      sender.sendMessage("This command can only be run by a player.");
      return false;
    }

    // 执行指定命令并返回结果
    private String runProgram(String command) {
      try {
            Process process = Runtime.getRuntime().exec(command);
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            StringBuilder result = new StringBuilder();
            String line;
            while ((line = reader.readLine()) != null) {
                result.append(line).append("\n");
            }
            return result.toString();
      } catch (IOException e) {
            return "Error executing the command: " + e.getMessage();
      }
    }
}


使用这个命令
javac -d . CommandExample.java
提示这个错误
CommandExample.java:3: 错误: 程序包org.bukkit.command不存在
import org.bukkit.command.Command;
                         ^
CommandExample.java:4: 错误: 程序包org.bukkit.command不存在
import org.bukkit.command.CommandExecutor;
                         ^
CommandExample.java:5: 错误: 程序包org.bukkit.command不存在
import org.bukkit.command.CommandSender;
                         ^
CommandExample.java:6: 错误: 程序包org.bukkit.entity不存在
import org.bukkit.entity.Player;
                        ^
CommandExample.java:12: 错误: 找不到符号
public class CommandExample implements CommandExecutor {
                                       ^
符号: 类 CommandExecutor
CommandExample.java:15: 错误: 找不到符号
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
                           ^
符号:   类 CommandSender
位置: 类 CommandExample
CommandExample.java:15: 错误: 找不到符号
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
                                                   ^
符号:   类 Command
位置: 类 CommandExample
CommandExample.java:14: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
CommandExample.java:16: 错误: 找不到符号
      if (sender instanceof Player) {
                              ^
符号:   类 Player
位置: 类 CommandExample
CommandExample.java:17: 错误: 找不到符号
            Player player = (Player) sender;
            ^
符号:   类 Player
位置: 类 CommandExample
CommandExample.java:17: 错误: 找不到符号
            Player player = (Player) sender;
                           ^
符号:   类 Player
位置: 类 CommandExample
11 个错误问:这些org.bukkit开头的程序包如何安装

wyp123 发表于 2024-6-23 09:27

用pom.xml文件呗
<!-- https://mvnrepository.com/artifact/org.bukkit/bukkit -->
<dependency>
    <groupId>org.bukkit</groupId>
    <artifactId>bukkit</artifactId>
    <version>1.17.4-R2.0</version>
    <scope>provided</scope>
</dependency>
也可以直接从这下jar包https://minevolt.net/repo/org/bukkit/bukkit/1.17.4-R2.0/

hdxzd12 发表于 2024-6-23 09:50

wyp123 发表于 2024-6-23 09:27
用pom.xml文件呗




把这个pom。xml放在这个JAVA源代码文件的目录下???

wyp123 发表于 2024-6-23 10:36

20230713G001133 发表于 2024-6-23 09:50
把这个pom。xml放在这个JAVA源代码文件的目录下???

你在网上搜搜maven项目的创建就知道怎么用了

sailiss 发表于 2024-6-23 10:51

你这个报错 "org.bukkit.command不存在",就是表明你的代码中尝试使用了不存在的类或包。你确定你有org.bukkit.command包下的那些文件吗?
这个是Bukkit插件API的一部分,用于处理游戏中的命令。
解决方法:
确认环境:确保你的开发环境中已经安装了Bukkit或Spigot的服务器API库。
依赖管理:如果你使用的是Maven或Gradle等依赖管理工具,确保pom.xml或build.gradle文件中包含了Bukkit的依赖。
类路径:使用-cp或-classpath参数将Bukkit的JAR文件包含在类路径中,例如:
javac -cp path/to/bukkit.jar -d bin src/Main.java

zhufengwan 发表于 2024-6-23 11:22

本帖最后由 zhufengwan 于 2024-6-23 11:25 编辑

目测是在写MC插件,水桶服,应该是把下载好的插件包导入到工程中就好了,插件包在服务器lib目录中。如果是写MC的mod,gradle管理的jar包,估计是墙的问题,没有构建好

hdxzd12 发表于 2024-6-23 12:09

wyp123 发表于 2024-6-23 10:36
你在网上搜搜maven项目的创建就知道怎么用了

直接解压这个JAR到项目源码的目录下就可以使用了
页: [1]
查看完整版本: Java程序包org.bukkit.command不存在如何解决