获取'错误:无法找到或加载主类',即使jar中存在类

时间:2018-04-20 12:55:00

标签: java ubuntu jar

获取'错误:无法找到或加载主类',即使jar中存在类

我们的项目中有一个命令行实用程序,它引用我们的项目jar并使用sh文件运行。它曾经在我们以前的版本中没有任何问题地工作。突然它停止了工作。即使jar包含在类路径中,当执行命令行实用程序时,也会收到错误“错误:无法找到或加载主类”。 通过使用ant 1.9.6和java 8构建项目来创建jar。

以下是创建jar的ant任务 -

<target name="jar-all" depends="compile">
        <jar destfile="build/jar/${ant.project.name}-all.jar" basedir="build/classes/">
            <zipgroupfileset dir="build/lib/" includes="*.jar"/>
            <zipgroupfileset dir="WebContent/WEB-INF/lib/" includes="*.jar"/>
        </jar>
</target>
我已经尝试过ant jar任务zip64mode思考jar文件的大小可能是一个问题。它没有任何区别。

为命令行实用程序(runprog.sh)设置类路径的Sh文件 -

#!/bin/bash

DISTDIR=/usr/share/deploy/tools/tools-dist/
APPCTX="applicationContext-tools.localhost.xml"
TOMCATDIR=/usr/share/tomcat8/lib/
_FXLCP=""
#/usr/share/java/groovy-all.jar
for d in "$TOMCATDIR $DISTDIR"; do
        for f in `find ${d} -name \*.jar`; do
                _FXLCP="${_FXLCP}:${f}"
        done
done
_FXLCP="${_FXLCP}:/usr/share/java/xercesImpl.jar:/usr/share/tomcat8/lib/servlet-api.jar"

_CWD=`pwd`
cd $DISTDIR
java -classpath $_FXLCP ${1} ${APPCTX} ${@:2}
cd $_CWD

用于运行实用程序的Sh文件 -

#!/bin/bash

RUNCMD=/usr/share/deploy/tools/runprog.sh

echo "Select from the following tools:"
echo "  1) Searcher"
echo "  2) Duplicator"

echo -n "Enter a number: "
read _NUM

if [ "X${_NUM}" == "X1" ]; then
  ${RUNCMD} au.com.tools.Searcher
elif [ "X${_NUM}" == "X2" ]; then
  ${RUNCMD} au.com.tools.Duplicator
else
  echo "Bad selection"
fi

在ant网站上阅读,为了构建java版本1.8代码,建议使用ant版本1.10.x.目前我们使用ant版本1.9.6。 unistalled ant 1.9.6并安装了1.10.3并构建了jar。仍然得到同样的错误。 还尝试比较它工作的版本的jar和不工作的版本,没有发现任何问题。

Java - 1.8
蚂蚁 - 1.9.6
平台 - Ubuntu 16.04
JAR尺寸 - 70.7 MB
爆炸JAR大小 - 161.1 MB

0 个答案:

没有答案