蚂蚁生成未能mkdir
问题描述:
我目前正在试图获得一个私人服务器的老年人不再服务美国去。我绝不是一个Java高手,但我一直在Google上搜索,并且在没有运气的情况下在墙上敲了几个小时。我为此使用了eclipse,安装了JDK和JRE并配置了路径。蚂蚁生成未能mkdir
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>
从Eclipse中的输出运行中的build.xml后:
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
我也尝试手动创建目录,这样做允许脚本运行,但是当它与这个启动服务器批处理文件一起运行时,这给了我一个“无法找到或加载主类jp.l1j.server”的错误:
@java -server -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Xms1024m -Xmx1024m -XX:NewRatio=2 -XX:SurvivorRatio=8 -jar l1jserver
@pause
任何帮助将不胜感激!
答
您是否需要任何第三方库来编译或运行您的应用程序? 看来你的类路径总是空的,因为你必须手动创建libs目录。我认为在构建你的jar时你不需要任何依赖,因为ant构建成功了,但是在运行时可能需要一些吗?
答
使用id libs嵌套在path
中的fileset
正在执行pathconvert
任务时正在扫描目录库。由于pathconvert
不在target
以外,因此在任何target
之前执行。
另外,无论如何我没有看到mkdir
的lib.dir
。