NetBeansのJavaプロジェクトで作業しています。プロジェクトの実行ボタンを押すと完全に動作します。しかし、私は端末からプログラムを実行する必要があります。私は、クラスファイル、search.classを含むディレクトリを開いて、私はエラーを取得しかし.classファイルが存在するときのJava NoClassDefFoundError
java search
でそれを実行してみました:
Exception in thread "main" java.lang.NoClassDefFoundError: search (wrong name: search/search)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
私は私の人生は、なぜ把握することはできませんのためにそのディレクトリにsearch.classが存在するため、「間違った名前」と表示されます。私の唯一の考えは、自分のプログラムから呼び出される.jarファイル(同じディレクトリにあります)があり、おそらく実行時にそれらを組み込む必要があるということです。
ご協力いただければ幸いです!
編集:それはおそらく、.jarファイルを含めないと問題になることが判明しました。プロジェクト全体がjarとしてパッケージ化され、java -jar search.jarとして実行されるdist /フォルダーに移動することで修正しました。
ありがとうございました!
このクラスはパッケージに入っていますか?クラスの名前は何ですか?クラスの署名を表示できますか?それが始まる行です... 'public class MyClass {'クラスはどのパッケージに入っていますか? –