0

私は次に実行しようとしています:

C:\dev\sources\boSchedules\loadJavaLibs>java -cp aurora.jar; ojdbc6.jar
oracle.aurora.server.tools.loadjava.LoadJavaMain -thin -user login/pass@myserv:mysid
 %BOS_SRC%/credit/card/api/ScheduleCardApi

そして、私は次のようになります:

Exception in thread "main" java.lang.NoClassDefFoundError: ojdbc6/jar
Caused by: java.lang.ClassNotFoundException: ojdbc6.jar
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: ojdbc6.jar.  Program will exit.

このエラーが発生するのはなぜですか?

4

3 に答える 3

1

パラメータはスペースで区切られます。JVM は、「ojdbc6.jar」クラスを実行したかのようにコマンドを解釈します。「jar」はクラス名、「ojdbc6」はパッケージです。

特定のクラス実行のクラスパスに配置するライブラリの名前を連結するには、「lib1;lib2」のようにスペースを入れずにセミコロンを使用してください。

PS:私たちの認証情報の一部を SO に貼り付けてもよろしいですか?:)

于 2013-12-26T13:07:46.863 に答える
1

aurora.jar 間のスペースを削除します。および ojdbc6.jar

于 2013-03-28T14:17:43.600 に答える
1

Java Application Launcherの man ページを見てください。

java -cp aurora.jar; ojdbc6.jar
oracle.aurora.server.tools.loadjava.LoadJavaMain -thin -user sched/sched@teach:prod
 %BOS_SRC%/credit/card/api/ScheduleCardApi

クラスパス エントリの間にスペースがありますaurora.jar; ojdbc6.jar。ランチャーは、最初の jar が唯一のクラスパス エントリであり、メソッドojdbc6.jarを含むクラスであると認識します。main(String[] args)また、その後のすべてをメソッドに渡す引数と見なしますmain(String[] args)。そのスペースを削除します。

于 2013-03-28T14:07:14.987 に答える