我有一个在Windows 7上创建的DirectoryScanner.jar
文件。 我想在Unix服务器上执行此jar文件。
我在putty中运行了以下命令,预期jar文件完全正常运行:
java -jar DirectoryScanner.jar
现在我想在Unix服务器上创建一个.sh文件,当执行该文件时可以运行这个jar包。我创建了一个Report.sh文件,在其中编写以下代码以执行此jar包:
java -cp /home/applvis/Java/UAT/lib/DirectoryScanner.jar com.acc.directory.scanner.SDScanner
但是当我在putty中执行此命令时,它显示以下错误:
[applvis@bg6lnxebs1 UAT]$ . ./ReportGen.sh
Exception in thread "Main Thread" java.lang.NoClassDefFoundError: com/acc/directory/scanner/SDScanner
Caused by: java.lang.ClassNotFoundException: com.acc.directory.scanner.SDScanner
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.acc.directory.scanner.SDScanner. Program will exit.
有人能告诉我我到底做错了什么,或者建议一些替代命令吗?
我的jar和sh文件在不同的目录中。即使它们在同一个目录中,我也会得到这个错误。
附注:我有很多jar文件需要依次执行。因此,我想创建一个sh文件,其中包含运行所有jar文件的代码,这样就不用再次编写每个jar文件单独在Unix上运行的命令了。对于我来说,只需运行sh文件即可轻松完成。因此,我需要在sh文件中编写能够运行我的jar文件的代码。