我的错误在这里 我一直在寻找解决这个问题,但我无法使其发挥作用。我对Java非常陌生。
我提取了一个.jar文件然后我去了" file.class"因为我想改变这个" file.class"中的一些文本。我创建了一个.java文件,现在我尝试将file.java编译为file.class,但它无法正常工作。
我只是想改变一些文字,我正在使用Eclipse。 我试图创建一个新项目,然后我构建了路径,添加了外部jar以从我的.jar文件中获取库,然后我添加了" file.jar"随着变化,我点击"清理"。我得到一个file.class但有很多错误。我不知道为什么,如果我不能解释清楚,我很抱歉。
我也尝试过" javac file.java"在CMD但我得到错误,如"无法找到符号等等#34;。怎么了?我错过了哪一部分?请向我解释一下,我对java很新。
package com.eu.habbo.habbohotel.commands;
import com.eu.habbo.Emulator;
import com.eu.habbo.habbohotel.GameEnvironment;
import com.eu.habbo.habbohotel.catalog.CatalogManager;
import com.eu.habbo.habbohotel.gameclients.GameClient;
import com.eu.habbo.habbohotel.items.ItemManager;
import com.eu.habbo.habbohotel.rooms.RoomManager;
import com.eu.habbo.habbohotel.users.HabboManager;
import com.eu.habbo.messages.outgoing.generic.alerts.GenericAlertComposer;
import gnu.trove.map.TIntObjectMap;
import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
public class AboutCommand
extends Command
{
public AboutCommand()
{
super(null, new String[] { "about" });
}
public boolean handle(GameClient gameClient, String[] params)
{
Emulator.getRuntime().gc();
int seconds = Emulator.getIntUnixTimestamp() - Emulator.getTimeStarted();
int day = (int)TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds) - day * 24;
long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.SECONDS.toHours(seconds) * 60L;
long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.SECONDS.toMinutes(seconds) * 60L;
gameClient.sendResponse(new GenericAlertComposer("<b>Version: 1.3.0</b>\r\n<b>Hotel Statistik</b>\r- Anvandare: " +
Emulator.getGameEnvironment().getHabboManager().getOnlineCount() + "\r" + "- Rum: " +
Emulator.getGameEnvironment().getRoomManager().getActiveRooms().size() + "\r" + "- Shop: " +
Emulator.getGameEnvironment().getCatalogManager().catalogPages.size() + " pages and " + CatalogManager.catalogItemAmount + " items. \r" + "- Furni: " +
Emulator.getGameEnvironment().getItemManager().getItems().size() + " items." + "\r" + "\n" + "<b>Server Statistik</b>\r" + "- Uptime: " + day + (day > 1 ? " days, " : " day, ") + hours + (hours > 1L ? " hours, " : " hour, ") + minute + (minute > 1L ? " minutes, " : " minute, ") + second + (second > 1L ? " seconds!" : " second!") + "\r" + "- RAM Usage: " +
(Emulator.getRuntime().totalMemory() - Emulator.getRuntime().freeMemory()) / 1048576L + "/" + Emulator.getRuntime().freeMemory() / 1048576L + "MB\r" + "- CPU Cores: " +
Emulator.getRuntime().availableProcessors() + "\r" + "- Total Memory: " +
Emulator.getRuntime().maxMemory() / 1048576L + "MB" + "\r\n" + "<b>Coola Personer:</b> \r" + "- Omega\r" + "- Nille \r" + "- Casanova \r" + "\r" + "<b>Thanks for using Arcturus. Report issues on the forums. http://arcturus.wf \r\r" + " - The General"));
return true;
}
}
答案 0 :(得分:2)
你图片中的第二个错误非常清楚。看来你的新项目的包名与jar文件中的项目不同。
确保包名称符合新项目的包名称。
答案 1 :(得分:0)
这是编辑可运行的.jar文件的方法。首先,您必须下载反编译器。我把这个用于我的项目。 http://jd.benow.ca/
使用此程序并打开.jar文件将显示.jar的所有源代码。现在,为了编辑源代码,您必须使用eclipse。将其保存为.zip,然后打开使用&#34;导入&#34;与日食。反编译工作效果很好,但不是100%,因为您可能需要在日食中稍微清理一下源代码。
可能有更有效的方法来做到这一点,但这应该有效