問題タブ [noclassdeffounderror]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaでNoClassDefFoundErrorが発生するのはなぜですか?
NoClassDefFoundError
Javaアプリケーションを実行するとが表示されます。通常、これの原因は何ですか?
java - Java1.4.2_07-b05を使用するTomcatでの長いクラス名のNoClassDefFoundError
私はJavaクラスを持っています:
it.eng.ancona.view.RuoliView $ TabElaborazioneFattureValidazione $ ElencoDettaglioElaborazioneFattureValidazione $ RigaElencoDettaglioElaborazioneFattureValidazione
複数の内部クラスには非常に長いです。
Eclipseで1.4.2_07-b05を使用し、このクラスを呼び出すと、すべてうまくいきます。
Tomcat 5.0で1.4.2_07-b05を使用すると、がスローされNoClassDefFoundError
ます。
私はクラス名を切り取ろうとしますが、この後はすべてうまくいきます。
インターネットを検索したところ、クラス名の最大長は65000であることがわかったので、長さは問題ないはずです。そして、Eclipseではすべてが機能します。
OSはVistaです。
誰かがそれがバグなのか他の何かなのか知っていますか?
java - TomcatでGraphicsEnvironment.getLocalGraphicsEnvironmentにアクセス中にNoClassDefFoundError
私はtomcatで実行されているアプリケーションを持っています。その方法の1つは、jpeg画像から簡単なサムネイルを作成することです。これらの機能はオフラインでも正常に機能し、1週間前はTomcatでも正常に機能します。しかし今、私は次のエラーを受け取ります:
これに影響を与えるものは何も変更していないと思います(実際には、svnリポジトリに従って関数をまったく変更していません)。したがって、ライブラリの問題である必要があります。しかし、私は何が欠けているのか理解できません。エラーが発生するgetThumbnail関数の実際の行は次のとおりです。
[編集]問題の説明を少し更新することにしました。はい、彼はjava.awtまたはそれに関連するクラスからいくつかのクラスを見つけることができないようです。ただし、これらはjvmのサーバーに存在します。Javaヘッドレスモードでは問題は解決しません。別のプロジェクトでは、まったく同じコードですが、このサーバーのaxis2Webサービス内で正常に機能しています。[/編集]
java - jar内のNoClassDefFoundError
com.toptur.sysTray というパッケージに含まれるクラスがあります。システム トレイをロードするだけで、外部パッケージは使用しません。システム トレイをインストールする SysTray オブジェクトを作成します。すべてがうまく構築されます。コマンドラインからアプリケーションを実行でき、systray がインストールされます。しかし、クラス ファイルから jar を作成して実行しようとすると、NoClassDefFoundError が発生します。
パッケージとそのクラス ファイルは jar 内にあり、アプリケーションは ant 外部 jar を使用しません。Javaが提供するクラスだけです。
また、jar から .exe ファイルをビルドすると、エラーなしで再び動作し始めます。
どうすればこれを追跡できますか?
上記のコードを使用して、ant ターゲットから jar ファイルを作成します。ドライバープログラムはパッケージに含まれていません。gotacan.java にあります
java -jar toptur.jar を使用して実行します
プログラムの残りの部分は機能し、そのパッケージを使用しようとすると例外がスローされるだけです。
java - 奇妙なクラスパス、.NoClassDefFoundError エラー
編集済み:ソリューションが見つかりました。これは奇妙で、最善の解決策ではありませんが、swt.jar と私のクラスがまったく同じ瞬間に同じ方法でロードされるように、先に進んで MY JAVA CODE (com.*) のクラスを swt.jar に入れました。クラスローダー。最善の解決策ではありませんが、一時的な修正です
編集: ここにほとんどのコードを追加しました: http://groups.google.com/group/clojure/browse_thread/thread/1d7dd4913b2f9aa7 http://groups.google.com/group/clojure/web/NoClassDefIssue.zip http: //groups.google.com/group/clojure/web/MostCodeIssue.java
これは奇妙な no classdef not found エラーです。これは、私のコードの動作の 90% が少し異なるシナリオです。Clojure を使用していることを無視してください。通常の Java コードでもこれを実行しましたが、同じエラーが発生します。
理想的には、カスタム クラスローダーに関するヘルプを期待していました。私の最初の考えは、クラスローダーを作成し、jar のファイルパス/URL をクラスローダーに追加して、コードを起動できるということでした。しかし、どうやら奇妙なことが起こっているようです。
4〜5個の補助jarファイルを動的にロードするjarファイルが1つあります。シンプルな URLClassLoader に基づいて構築されています。ユーザーが 1 つの jar ファイルをクリックしてアプリケーションを起動できるため、これを実行したいと考えています。そのため、ユーザーが心配しなければならない項目が 1 つあります。
この jar ファイルをクリックすると、アプリケーションはファイルシステムから jar ファイルをロードします。たとえば、アプリケーションは swt.jar (Eclipse のウィジェット ツールキット) とその他の jar をロードします。
3 (しかし心配しないでください)、私のアプリケーションは Clojure (動的プログラミング言語) で構築されています。最初に起動するアプリケーションはこの Clojure スクリプトです。私のアプリケーションのほとんどは、clojure スクリプト内にあります。
4. 1 ~ 3 まではすべて問題なく動作します。アプリケーションがロードされ、clojure スクリプトが実行され、SWT GUI アプリケーションが実行されます。
ここが動かない部分です。
既存の Java ライブラリがあり、それを my-swt-gui.jar と呼びます。それもswtアプリケーションです。基本的に別のGUIアプリケーションがすでに構築されています。現在の clojure/swt アプリケーションからウィンドウをロードしようとしています。何らかの理由で、JAVA 指向のライブラリが SWT を認識せず、noclassdef エラーが発生します。
ここが奇妙です。そして、どこに奇妙な点があると思われるかを特定します。
エンティティ: A. Java 指向のクラスローダー。Java クラスローダーで、clojure アプリケーションを起動します。SWT およびその他の jar ファイルは、このクラスローダーでロードされます。B. セクション エンティティによって呼び出される Clojure 指向のコード clojure コードは、swt ベースの GUI アプリケーションです。B は正常に動作します。C. 別の GUI ウィンドウを含む Java コード。何らかの理由で、このライブラリが読み込まれず、noclassdef というエラーが発生します。
注: 私は、SWT クラスが実際にクラスパスにあることを知っています。そうしないと、NoClassFound 例外が発生します。私はその例外を受けていません。他にも何かが起こっています。
注: SWT に win32 dll が含まれていることも問題でしょうか? おそらく、win32 dll jar へのアクセスは初めて機能しますが、Java コードでは機能しませんか? しかし、それは奇妙です。SWT が機能し、その後機能しないのはなぜですか?
すべてのコードをお見せすることはできませんが、関連する部分をお見せできれば幸いです。
メインのクラスローダー コードは次のとおりです。
そして、これがJava swtウィンドウをロードしようとした方法です。クラスローダーについてできるだけ多くを印刷して、別のクラスローダーに変更しようとしました。
public static final void createPDFWindowShell(IStartService service, final Object shell, final Object globalClassLoader) throws Exception {
}
エラーは次のとおりです。
-
java - jar の実行時の NoClassDefFound
メインクラスを適切に設定して、IntelliJを使用してjarを構築しました。
コマンド ライン (Windows) から "java -jar foo.jar" を実行すると、メイン ファイルが見つからないという例外が発生します。メインクラスは次のようになります。
次の例外が発生します。
マニフェスト ファイルには次のものが含まれます。
また、jar には、.class ファイルを含む適切なディレクトリ構造が含まれています。
jar - Axis に個人用 JAR を含める方法は?
私は Axis 1.4 を使用しており、JAR に集められたクラスを使用する必要があります。
それらを抽出したくありません。
私はそれを入れようとします:
/usr/share/tomcat5.5/webapps/axis/WEB-INF/lib/myjar.jar
/usr/share/tomcat5.5/webapps/axis/WEB-INF/classes/myjar.jar
/opt/axis/lib/myjar.jar
/root/myjar.jar
しかし、私はまだエラーがあります。
myjar.jar
私の中にあります$CLASSPATH
(コンパイルはうまくいきます)。
私は何かを逃しましたdeploy.wsdd
か?
AXIS エラーは次のとおりです。
web-services - サービスを一覧表示しようとすると Apache Axis NoClassDefFoundError が発生する
Axis を利用した Web サービスを一覧表示しようとすると、任意のサービスの WSDL にアクセスしようとすると、問題のサービスを使用しようとすると、例外がスローされます。
サーブレット AxisServlet の Servlet.service() が例外をスローしました
java.lang.NoClassDefFoundError: com.example.MyAwesomeServiceSoapBindingImpl
これで、クラスが Axis Web サービスの WEB-INF/lib ディレクトリにある jar で利用できることがわかり、そこに置いたので Axis をリロードしました。
アイデアはありますか?
[Tomcat 5.5.x、Apache Axis バージョン: 1.4 2006 年 4 月 22 日 (06:55:48 PDT) にビルド]
java - Java では、例外クラスが必要になる前にクラスローダーで使用できるようにする必要があるのはなぜですか?
JAR を動的にロードするアプリケーションを開発しています。JAR には、使用する一連のクラスの定義が含まれています。動的にロードされた JAR にある例外派生クラスをキャッチしようとするまで、すべてがうまくいきました。
次のスニペットは問題を示しています (DynamicJarLoader
は実際に JAR をロードするクラスです。 と の両方TestClass
がMyException
外部 JAR にあります)。
実行しようとすると、次のようになります。
に置き換えるcatch(MyException e)
とcatch(Exception e)
、プログラムは正常に動作します。これは、JAR がすでにロードされた後にJavaが検出できることを意味します。TestClass
そのため、JVM はすべての Exception クラスをプログラムの実行開始時に定義する必要があり、それらが必要なとき (つまり、その特定の try-catch ブロックに達したとき) ではないようです。
なぜこれが起こるのですか?
編集
追加のテストをいくつか実行しましたが、これは確かにかなり奇妙です。これはの完全なソースですMyException
:
このコードは次のように実行されます。
これはしません:
NetBeans からテストを実行すると、すべてが計画どおりに進むことを指摘しておく必要があります。奇妙なことは、外部の Jar を Java の目から強制的に削除し、コマンド ラインからテスト アプリを実行したときにのみ始まります。
編集#2
答えに基づいて、私はこれを書きました。これは、私が受け入れたものが本当に正しいことを証明していると思います:
java - Java アプリケーション NoClassDefFoundError
CIS (Content Integration Suite) を介してドキュメントをストレージ アプリケーションにアップロードするための Java アプリケーションを作成しました。アプリは RAD では正常に実行されますが、UNIX 環境では実行可能 jar として実行され、NoClassDefFoundError が発生します。ローカル マシンにクラスが見つからず、インターネット上にクラスへの参照がありません。
マニフェストには、必要な jar ファイルとメイン クラスのクラス パスが含まれています。
誰でも助けることができますか?
更新: 私が持っている CIS を扱う jar ファイルは 1 つだけです。私は瓶を調べましたが、中にクラスはありません。私は、CIS クラスを持つ他の RAD デフォルト クラスに慣れていません。これは、このクラスだけでなく、webservices.jar に含まれるクラスでも発生します。クラスが表示され、Jar をパスから削除すると、別の欠落しているクラスについて不平を言うため、クラス パスの一部です。パスに戻すと、プログラム内でさらに進み、同じエラーが発生します。