java - 无法从 shell 运行 Java 程序 ClassNotFoundException

标签 java

我正在尝试从 bash shell 运行 Java 程序。 该程序使用一些第 3 方库(mysql 连接器、amazon aws)

这只是一个标准的java程序,不运行在J2EE服务器或任何复杂的东西上。

它总是提示找不到第三方库中的类之一(ClassNotFoundException)(如果我删除对此的引用,那么它会提示另一个类)。

这很令人困惑,因为我已经检查了包含库的 jar 文件的位置是否在类路径中。我还尝试将库放在与我尝试运行的 .class 文件相同的文件夹中,但无济于事。

我在同一台计算机上使用 javac 命令编译了程序,并且在查找库时没有出现问题,所以我很困惑为什么它在运行时找不到它们。

我也在Windows下从cmd尝试过这个,但遇到了同样的问题。

我能找到的唯一合理的解释是,这是由于 JVM 中的安全限制,在这种情况下,最好知道如何为此程序禁用它们?

谢谢

最佳答案

有点像 Bozho 所说的,但是对于 jar 文件,您必须通过路径和名称来调用 jar 文件,而不是它们的路径。根据我从您的帖子中收集到的信息,您只是添加了路径。

关于java - 无法从 shell 运行 Java 程序 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4684683/

相关文章:

java - 如何找到 Hibernate + Spring-JPA 的兼容版本对? (无法打开 JPA EntityManager 进行交易)

java - 用于在 Java 8 Stream 中排序的空安全日期比较器

java - 在 @RestController 中使用嵌套对象进行 GET 请求?

java - 如果在java中短时间内创建多个对象怎么办?

java - 如何发出两个形状接触的事件信号? java

java - Amazon SQS - FIFO 队列消息请求,接收不一致

java - 带有 Spring Boot 和多个模式的 Liquibase,如何指定执行顺序

java - 我应该使用 try/catch 吗?

java - Jasper Reports 将绝对路径更改为相对路径?

java - 这段代码如何执行?