2011-09-15 6 views
0

jfreechartライブラリを使用し、ローカルドライブのテキストファイルを使用してグラフを表示するjavaファイルがあります。日食でうまく動作します。しかし、私はこれをcmdプロンプトから実行したい、他の単純なJavaファイルはcmd prmntで正常に実行できますが、このファイルを実行することはできません。 PS:MyTool.javaはエラーなくコンパイルでき、クラスファイルは作成されますが実行できません。コンパイルできますが、jarファイルでcmdからJavaを実行できません。


1) This is how I am compiling it in cmd prompt: (gives 0 errors) 

C:\Documents and Settings\hello.maga\workspace\MyTool\lib>javac -cp "gnujaxp. 
jar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-e 
xperimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" MyTool.java 

    2) This is how I am running it: 


C:\Documents and Settings\hello.maga\workspace\MyTool\lib>java -cp "gnujaxp.j 
ar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-ex 
perimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" MyTool 


    Error for second command: 

    Exception in thread "main" java.lang.NoClassDefFoundError: MyTool 
    Caused by: java.lang.ClassNotFoundException: MyTool 
    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: MyTool. Program will exit. 

私は理解していないと、エラーがないかどうかを誰かが私を教育することができ、それは、最初の場所でコンパイルしてはならない、です。どうもありがとうございました。

答えて

2

"。"を含める必要があります。そのような、クラスパス内:

java -cp ".;gnujaxp.jar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-experimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" 
0

Setting the class pathの」From:「クラスパスには、サードパーティ製およびユーザ定義クラスを見つけるためのSDKツールやアプリケーションを伝えます - つまり、Javaの拡張クラスではありませんことクラスパスはjavacコンパイラでコンパイルしたクラスを見つける必要があります。デフォルトは、それらのクラスが見つけやすいようにカレントディレクトリです。 "

自分でクラスパスを設定した場合、デフォルトは適用されなくなり、現在のディレクトリからクラスをロードすることを期待しています。 「」を追加するなど、手動で追加する必要があります。 Ed Staubが推奨するようにクラスパスに追加します。

コンパイル時には、コンパイルされたものなので、クラスパス上でクラスは不要です。そのためには、クラスパス上の他のすべてのクラス(jarファイル内)だけが必要でした。そのため、両方の操作で同じクラスパスを使用していても、コンパイルできますが実行できません。

関連する問題