[英]Ant build fails to mkdir
I'm currently trying to get a private server for an older mmo that no longer serves the US going. 我目前正在尝试为不再适合美国市场的较旧mmo购买专用服务器。 I am by no means a Java whiz, but I have been googling and beating my head against a wall for several hours now with no luck.
我绝不是Java的专家,但是我一直在谷歌上搜索并且将自己的头撞在墙上已经好几个小时了,没有运气。 I'm using eclipse for this, have both JDK and JRE installed and paths configured.
我为此使用eclipse,同时安装了JDK和JRE并配置了路径。
The build.xml file: build.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="L1J" default="all" basedir=".">
<description>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/
</description>
<!-- Set Property -->
<property name="src.dir" value="src" />
<property name="lib.dir" value="libs" />
<property name="build.dir" value="build" />
<property name="main.class" value="jp.l1j.Server" />
<property name="jarfile" value="l1jserver.jar" />
<path id="libs">
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
<pathconvert property="classpath" refid="libs" targetos="windows" pathsep=" ">
<map from="${basedir}\${lib.dir}\" to="./${lib.dir}/"/>
<map from="\" to="/"/>
</pathconvert>
<!-- Set DefaultTarget -->
<target name="all" depends="clean,compile,jar,clean2" />
<!-- clean Target -->
<target name="clean">
<delete dir="${build.dir}" />
</target>
<!-- Compile Target -->
<target name="compile">
<mkdir dir="${build.dir}" />
<javac includeantruntime="true" srcdir="${src.dir}"
destdir="${build.dir}"
optimize="on"
debug="on"
encoding="UTF-8">
<classpath refid="libs" />
<compilerarg value="-Xlint:unchecked" />
</javac>
</target>
<!-- jar Target -->
<target name="jar">
<jar jarfile="${jarfile}" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="${main.class}" />
<attribute name="Class-Path" value="${classpath}" />
</manifest>
</jar>
</target>
<!-- clean Target -->
<target name="clean2">
<delete dir="${build.dir}" />
</target>
</project>
The output from Eclipse after running the Build.xml: 运行Build.xml后,Eclipse的输出:
Buildfile: C:\Users\Administrator\workspace\L1J\build.xml
BUILD FAILED
C:\Users\Administrator\workspace\L1J\build.xml:28: C:\Users\Administrator\workspace\L1J\libs does not exist.
Total time: 390 milliseconds
I did try manually creating the directories and doing so allows the script to run, but that gives me a "could not find or load main class jp.l1j.server" error when it's run with this start server batch file: 我确实尝试手动创建目录,并允许脚本运行,但这在使用此启动服务器批处理文件运行时给了我一个“找不到或加载主类jp.l1j.server”的错误:
@java -server -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms1024m -Xmx1024m -XX:NewRatio=2 -XX:SurvivorRatio=8 -jar l1jserver
@pause
Any help would be greatly appreciated! 任何帮助将不胜感激!
Don't you need any third party library to compile or run your application ? 您不需要任何第三方库来编译或运行您的应用程序吗? It seems that your classpath is always empty since you had to create the libs directory by hand.
似乎您的类路径始终为空,因为您必须手动创建libs目录。 I assume that you do not need any dependencies when building your jar since ant build succeed, but maybe you need some at runtime ?
我假设由于ant build成功,所以在构建jar时不需要任何依赖关系,但是也许在运行时需要一些依赖关系?
The fileset
nested inside the path
with id libs is scanning the directory libs as soon as the pathconvert
task is executed. 一旦执行
pathconvert
任务,嵌套在ID为libs的path
内的fileset
就会扫描目录libs。 Since pathconvert
is outside of any target
it is executed before any target
. 由于
pathconvert
在任何target
之外,因此它在任何target
之前执行。
Besides, I don't see any mkdir
for lib.dir
anyway. 此外,无论如何我都看不到
lib.dir
任何mkdir
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.