gpt4 book ai didi

java - 错误: could not find or load main class (another one)

转载 作者:行者123 更新时间:2023-12-01 23:45:24 25 4
gpt4 key购买 nike

收到此消息时,我在整个网站上进行了搜索并尝试了一些解决方案,但似乎没有任何效果。

我试图在 Ubuntu 12.04.2(使用 java-7-openjdk-amd64)上调用运行 java 程序的 shell 脚本,然后收到“错误:无法找到或加载主类 com.xx”错误。

这就是我的脚本调用 Java 的方式:

"$JAVA" $server_jvmargs $javaProps -Dxx.home="$XX_HOME" -Duser.dir="$XX_HOME" -cp $client_classpath $mainclass $args

上面看到的参数定义如下:

args=$*
javaProps=
mainclass=com.xx
server_jvmargs="-Djava.awt.headless=true -Xms1024m -Xmx1024m $jvmargs"
XX_HOME="`pwd`/../.."
client_classpath="$XX_HOME/lib/client/patch.jar;$XX_HOME/lib/client/xyx-xxx.jar;$clientlibs;$XX_HOME/lib/server/standard-1.1.2.jar;$publictilesource;$respath;$XX_HOME/lib/client/xxmainclass.jar"

mainclass 变量位于 xxmainclass.jar 文件的类路径中,所以我不确定为什么找不到它?

有人对可能发生的事情有任何想法吗?

最佳答案

要查看运行脚本时实际发生的情况,请使用 bash -x 调用它,或将 set -x 放在顶部;这将在运行之前打印每个命令,以便您可以看到它实际上如何启动 JVM。如果没有这些信息,就很难做出更好的诊断。也就是说...

<小时/>

看起来您一直在复制 Tomcat 的启动脚本。不;他们太糟糕了。

在 shell 端更正确的东西可能看起来像这样:

args=( "$@" )
javaProps=( )
mainclass=com.xx
server_jvmargs=( -Djava.awt.headless=true -Xms1024m -Xmx1024m "${jvmargs[@]}" )
XX_HOME="$PWD/../.."
client_classpath="$XX_HOME/lib/client/patch.jar:$XX_HOME/lib/client/xyx-xxx.jar:$clientlibs:$XX_HOME/lib/server/standard-1.1.2.jar:$publictilesource:$respath:$XX_HOME/lib/client/xxmainclass.jar"

java \
"${server_jvmargs[@]}" \
"${javaProps[@]}" \
-Dxx.home="$XX_HOME" \
-Duser.dir="$XX_HOME" \
-cp "$client_classpath" \
"$mainclass" "${args[@]}"

使用${foo[@]}使用文字内容扩展数组foo。请注意,在这种情况下,foo 必须创建为数组,并且您需要使用支持数组的 shell(因此您的脚本需要以 # 开头!/bin/bash,而不是 #!/bin/sh)。

参见http://mywiki.wooledge.org/BashFAQ/005有关 bash 中数组的介绍。

关于java - 错误: could not find or load main class (another one),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17140330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com