我一直在尝试在我的pc上使用nugeta服务器。但问题是,当我运行build.xml时,它会抛出system,bol未找到和其他类型的错误,有人可以帮助我吗?? ?!
下面是ant显示的编译错误:
[echo] Compiling the java source files...
[javac] Compiling 3 source files to C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServerclasses
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:5: error: package org.slf4j does not exist
[javac] import org.slf4j.Logger;
[javac] ^
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:6: error: package org.slf4j does not exist
[javac] import org.slf4j.LoggerFactory;
[javac] ^
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:8: error: package com.nuggeta.game.core.ngdl.nobjects does not exist
[javac] import com.nuggeta.game.core.ngdl.nobjects.NGame;
[javac] ^
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:9: error: package com.nuggeta.game.core.ngdl.nobjects does not exist
[javac] import com.nuggeta.game.core.ngdl.nobjects.NGameMessage;
和
C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:39: error: cannot find symbol
[javac] public IncommingRequestStatus onMessage(NPlayer player, Message message) {
[javac] ^
[javac] symbol: class Message
[javac] location: class GameMessageServerInterceptor
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:39: error: cannot find symbol
[javac] public IncommingRequestStatus onMessage(NPlayer player, Message message) {
[javac] ^
[javac] symbol: class IncommingRequestStatus
[javac] location: class GameMessageServerInterceptor
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:55: error: cannot find symbol
[javac] public IncommingRequestStatus onAdminMessage(Message message) {
[javac] ^
[javac] symbol: class Message
[javac] location: class GameMessageServerInterceptor
[javac] C:UsersDevelopmentDesktopnuggetaWorkspaceNuggetaServersrccomnuggetagameserverGameMessageServerInterceptor.java:55: error: cannot find symbol
[javac] public IncommingRequestStatus onAdminMessage(Message message) {
[javac] ^
[javac] symbol: class IncommingRequestStatus
[javac] location: class GameMessageServerInterceptor
这是构建文件
<project name="NuggetaGameServer" basedir="." default="jar">
<target name="jar" description="jar">
<delete file="lib/myServer.jar" />
<mkdir dir="classes" />
<echo message="Compiling the java source files..." />
<javac destdir="classes" debug="on" failonerror="yes" includeantruntime="false">
<src path="src" />
</javac>
<jar destfile="lib/myServer.jar">
<zipfileset dir="classes/" />
</jar>
</target>
我已经导入了libs游戏服务器和myServer
您缺少对第三方jar的依赖项。一个明显的例子是对SLF4J日志框架的依赖:
- 搜索org.slf4j.Logger
管理编译和运行时依赖关系在所有编程语言中都是一个重要的问题,不仅仅是java。我不能访问你的代码,但你的构建文件看起来不够。
假设您的第三方jar位于"lib"目录中,我希望是这样的:
<project name="NuggetaGameServer" basedir="." default="jar">
<path id="compile.path">
<fileset dir="lib"/>
</path>
<target name="jar" description="jar">
<delete file="lib/myServer.jar" />
<mkdir dir="classes" />
<echo message="Compiling the java source files..." />
<javac destdir="classes" debug="on" failonerror="yes" includeantruntime="false" classpathref="compile.path">
<src path="src" />
</javac>
<jar destfile="lib/myServer.jar">
<zipfileset dir="classes/" />
</jar>
</target>
注意javac任务上的"classpathref"属性。这会将"lib"目录中的jar文件添加到编译时类路径中。