gpt4 book ai didi

java - 即使 jar 文件在工作目录中也找不到类

转载 作者:搜寻专家 更新时间:2023-11-01 01:46:43 25 4
gpt4 key购买 nike

我正在努力让我的 Java 程序在 AIX 上运行。我在 Windows 上使用 Eclipse 创建了一个可运行的 Jar 文件,jRams.jar 下面。我一直收到找不到类的错误,直到最后我将所有外部库放在同一目录中。

$ ls
JAXB2_20081030.jar
JAXB2_20110601.jar
activation.jar
asjava.jar
commons-beanutils-1.8.3.jar
commons-beanutils-bean-collections-1.8.3.jar
commons-beanutils-core-1.8.3.jar
commons-codec-1.5.jar
commons-collections-3.2.1.jar
commons-configuration-1.6.jar
commons-digester-2.1.jar
commons-jxpath-1.3.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
commons-logging-adapters-1.1.1.jar
commons-logging-api-1.1.1.jar
jRams.jar
jaxb-api.jar
jaxb-impl.jar
jaxb-xjc.jar
jaxb1-impl.jar
jremote.jar
jsr173_1.0_api.jar
log4j-1.2.16.jar
netty-3.2.4.Final.jar
$

我仍然收到找不到类的错误。

$ java -jar jRams.jar
The java class is not found: com.jbase.jremote.JRemoteException

jremote.jar 肯定包含 JRemoteException。为什么这不起作用?

更新

感谢您中肯的回答。我现在更好地理解了 Java 应用程序和 list 文件的本质。

原来我的 ftp 客户端是以 ASCII 模式而不是二进制模式传输的,所以 jar 文件已损坏。尽管如此,我还是学到了很多东西。

最佳答案

当使用-jar 选项时,您需要在manifest file 中指定哪些jar 文件应该在您的类路径中。 .仅仅将所需的 jar 文件放在同一目录中是不行的。

在您的 list 中添加一行:

Class-Path: JAXB2_20081030.jar:JAXB2_20110601.jar:....:netty-3.2.4.Final.jar

或者跳过-jar选项并使用

启动
java -cp JAXB2_20081030.jar:....:netty-3.2.4.Final.jar:jRams.jar pkg.JRamsMain

它应该可以正常工作。

(请注意,在 *nix 系统上,与 Windows 机器不同,类路径中的 jar 文件应使用 : 而不是 ; 分隔。)

进一步阅读:

关于java - 即使 jar 文件在工作目录中也找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7469711/

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