apache ant无法找到或加载主类org.apache.tools.ant.launch.Launcher

Jan*_*ani 8 java linux ant

我正在尝试编译一个在linux上使用apache ant的工具

https://github.com/lindenb/jvarkit

当我尝试编译该工具时,我得到n错误.

$ make vcffilterjs
Run Code Online (Sandbox Code Playgroud)

这是我在运行命令时得到的

echo "Compiling htsjdk with ${JAVA_HOME} = /usr/lib/jvm/java/jre/"
Compiling htsjdk with /usr/lib/jvm/java/jre/ = /usr/lib/jvm/java/jre/
echo "Compiling htsjdk library for java. Requires  apache ANT. If it fails      here, it's a not a problem with jvarkit."
Compiling htsjdk library for java. Requires  apache ANT. If it fails here,  it's a not a problem with jvarkit.
echo "And ${JAVA_HOME}/bin/javac should be >=1.7"
And /usr/lib/jvm/java/jre//bin/javac should be >=1.7
(cd /home/jannahS/jvarkit/htsjdk-1.139 && ant )
Error: Could not find or load main class  org.apache.tools.ant.launch.Launcher
make: *** [/home/jannahS/jvarkit/htsjdk-1.139/dist/htsjdk-1.139.jar] Error 1
Run Code Online (Sandbox Code Playgroud)

我已经安装了apache ant并尝试在google指令后设置ANT_HOME

export ANT_HOME=apache-ant-1.9.6
ANT_OPTS="-Xms256M -Xmx512M"
PATH=$PATH:$HOME/bin:$ANT_HOME/bin
export ANT_HOME ANT_OPTS PAT
Run Code Online (Sandbox Code Playgroud)

我也设置了JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/jre-1.7.0
export PATH=$JAVA_HOME/jre/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

我跑的时候

ant --execdebug

exec "/usr/lib/jvm/java/jre//bin/java" -Xmx256M -classpath "apache-ant-  1.9.6/lib/ant-launcher.jar" -Dant.home="apache-ant-1.9.6" -Dant.library.dir="apache-ant-1.9.6/lib" org.apache.tools.ant.launch.Launcher -cp ""
Buildfile: build.xml does not exist!
Build failed
Run Code Online (Sandbox Code Playgroud)

我不知道还有什么可以让事情发挥作用.没有apache ant,我无法编译我想要使用的工具

mar*_*owa 7

在ANT_HOME中使用完整路径,例如:

export ANT_HOME=/usr/lib/apache-ant-1.9.6
Run Code Online (Sandbox Code Playgroud)

它依赖于它的确切位置


小智 6

无法找到或加载主类 org.apache.tools.ant.launch.Launcher

在 mac 中,这是由于一些环境问题,如果您使用 brew 命令安装 ant,

从ant复制lib文件夹并粘贴到bin文件夹中

现在运行命令问题解决了:-)

问题原因

ant 正在尝试bin/lib/ant-launcher.jar从无效路径获取文件

  • 我也遇到了这个问题(虽然我没有构建同一个项目),通过 brew 安装了 macOS。我没有复制 lib 文件夹,而是将我的 ANT_HOME 变量设置为:`/usr/local/Cellar/ant/1.10.3/libexec` 这允许我的构建工作。 (9认同)