- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在努力让我的 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/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!