无法从shell ClassNotFoundException运行Java程序

时间:2011-01-13 20:05:42

标签: java

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

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

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

这是令人困惑的,因为我已经检查过包含libs的jar文件的位置是在类路径中。我也尝试将libs放在与我试图运行的.class文件相同的文件夹中无效。

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

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

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

由于

3 个答案:

答案 0 :(得分:1)

Bozho所说的那种,但是对于jar文件,你必须通过路径和名称调出jar文件,而不是它们的路径。从我从你的帖子收集到的内容,你只是添加了路径。

答案 1 :(得分:0)

如果您在问题中使用了正在使用的命令行,那会更好。它基本上类似于java -classpath c:/libs/myjar.jar;c:/libs/myjar2.jar;c:/myclasses MyClass,其中MyClass是“主”java类,-classpath选项是您希望运行时查找依赖项的区域列表。 .jar是jar文件,文件夹myclasses是一个文件夹,你可能有一个.class文件或程序可能需要的其他配置信息。

答案 2 :(得分:0)

我认为这是针对Linux的,它是java -classpath“/path/to/jar/myjar.jar:”。 MyClass