0

我有一个包含 run.bat 文件的 java 应用程序,如下所示:

rem set path=D:/Applns/jdk1.5/bin
set classpath=.;lib/derby.jar;lib/mail.jar;lib/activation.jar;lib/commons-codec-1.3.jar
start javaw net.sf.veettukaaran.appclient.ApplicationController

当我run.bat在 Windows 中运行它时,应用程序运行良好。但我想在ubuntu 12.04. 所以我尝试将其转换run.batrun.sh如下:

# /bin/sh
java -classpath './lib/derby.jar:lib/mail.jar:lib/activation.jar:lib/commons-codec-1.3.jar' net/sf/veettukaaran/appclient/ApplicationController

当我运行这个脚本时,./run.sh它给了我类未找到异常,如下所示:

Caused by: java.lang.ClassNotFoundException: net.sf.veettukaaran.appclient.ApplicationController
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: net/sf/veettukaaran/appclient/ApplicationControll.  Program will exit.

有人可以指出我做错了什么吗?我已经检查了指定jar文件classpath和类文件的路径,它是正确的。其他一些想法可能出了什么问题?

谢谢

4

2 回答 2

0

好吧,我终于可以运行 run.sh 文件了。如下所示:

# /bin/sh
java -cp ':./lib/derby.jar:./lib/mail.jar:./lib/activation.jar:./lib/commons-codec-1.3.jar' net.sf.veettukaaran.appclient.ApplicationController

之后我运行这个命令:“ dos2unix run.sh”然后我运行./run.sh. 这样应用程序就会被执行。

我感谢你们所有人的回应..

于 2012-09-02T12:24:47.443 回答
0

替换以下

java -classpath './lib/derby.jar:lib/mail.jar:lib/activation.jar:lib/commons-codec-1.3.jar' net/sf/veettukaaran/appclient/ApplicationController

java -classpath '.:./lib/derby.jar:lib/mail.jar:lib/activation.jar:lib/commons-codec-1.3.jar' net.sf.veettukaaran.appclient.ApplicationController

请注意,我刚刚将当前目录添加.到您的目录中,并通过替换为classpath更正了类前面的类包名称/.

于 2012-09-02T12:02:02.047 回答