2011-01-13 131 views
0

我试图从bash shell运行Java程序。 该程序使用一些第三方库(mysql连接器,亚马逊aws)无法从shell运行Java程序ClassNotFoundException

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

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

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

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

我也是从CMD试过这种在Windows下,但也得到了同样的问题。

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

感谢

+2

你的命令行看起来像什么? – OpenSource 2011-01-13 20:11:32

回答

1

什么Bozho说,但对于jar文件,你必须召唤出的路径和名称的jar文件类,只是没有道路给他们。从我从你的帖子中收集到的信息,你只是增加了路径。

0

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

+0

我试过这个,它在windows cmd中可以正常工作。但现在在Linux上它声称它找不到MyClass – user574795 2011-01-13 21:33:33

0

我想到了Linux,它是java -classpath“/path/to/jar/myjar.jar :.” MyClass