java.lang.NoClassDefFoundErrorを解決するには?


221

OracleのJavaチュートリアルで両方の例を試しました。どちらも正常にコンパイルされますが、実行時に両方ともこのエラーが発生します。

Exception in thread "main" java.lang.NoClassDefFoundError: graphics/shapes/Square
    at Main.main(Main.java:7)
Caused by: java.lang.ClassNotFoundException: graphics.shapes.Square
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

Main.javaファイルが間違ったフォルダにある可能性があります。次にディレクトリ階層を示します。

graphics
 Main.java
 shapes
|    Square.java
|    Triangle.java
 linepoint
|    Line.java
|    Point.java
 spaceobjects
|    Cube.java
|    RectPrism.java

そしてここにありMain.javaます:

import graphics.shapes.*;
import graphics.linepoint.*
import graphics.spaceobjects.*;

public class Main {
    public static void main(String args[]) {
        Square s = new Square(2,3,15);
        Line l = new Line(1,5,2,3);
        Cube c = new Cube(13,32,22);
    }
}

ここで何が悪いのですか?

更新

私は入れて置くの後Mainにクラスをgraphics(私は追加のパッケージpackage graphics;、それに)(グラフィックスを含むフォルダ)「_test」にクラスパスを設定し、それをコンパイルし、使用してそれを実行したjava graphics.Main(コマンドラインから)、それが働きました。

本当に遅いアップデート#2

私はEclipse(Notepad ++とJDKのみ)を使用していませんでした。上記のアップデートで問題が解決しました。ただし、これらの回答の多くはEclipseとIntelliJに対するもののようですが、それらには同様の概念があります。


1
メインクラスを見ると、パッケージには含まれていません(package graphics;上部にあります)。であるgraphicsあなたのパッケージ構造のヘッドは?Squareはpackage graphics.shapes一番上にありますか?
lreeder 2013

1
あなたは.javaファイルがどこにあるかをリストしていますが、得られるのは実行時の問題なので、実際に興味があるのは.classファイルがどこにあるか、そしてそれらがクラスパス上にあるかどうかです。Mainクラスをどのように実行していますか?
Thor84no 2013

EclipseでShift + ctrl + oを
押すだけで

クラス名を正しく入力していることを確認してください。クラス名の先頭を大文字にしなかったため、このエラーが発生しました
Jeremy Borg

これは、大規模なリファクタリング後にIntelliJ IDEAで発生することがあります。プロジェクトを右クリックして、[モジュールのコンパイル]を選択し、プロジェクトを再起動すると、再び機能するはずです。
Zar

回答:


223

コードをコンパイルする.classと、プログラムのクラスごとにファイルが作成されます。これらのバイナリファイルは、Javaがプログラムを実行するために解釈するバイトコードです。NoClassDefFoundError(この場合はクラスローダことを示してjava.net.URLClassLoader動的にクラスをロードするための責任がある)、見つけることができない.classあなたが使用しようとしていることをクラスのファイルを。

必要なクラスが存在しない場合、コードはコンパイルされません(クラスがリフレクションでロードされない限り)。そのため、通常、この例外は、クラスパスに必要なクラスが含まれていないことを意味します。クラスローダー(具体的にはjava.net.URLClassLoader)は、クラスパスの各エントリで、フォルダーa / b / c /のパッケージabc内のクラスを探すことに注意してください。NoClassDefFoundErrorまた、コンパイルした.jarファイルの一時的な依存関係がなく、使用しようとしていることを示している場合もあります。

たとえば、クラスがあった場合com.example.Foo、コンパイル後にクラスファイルができますFoo.class。たとえば、作業ディレクトリがであるとし.../project/ます。そのクラスファイルはに配置する必要があり.../project/com/example、クラスパスをに設定します.../project/

補足:JavaおよびJVM言語に存在する素晴らしいツールを利用することをお勧めします。EclipseやIDEAのような最新のIDE、およびMavenやGradleのようなビルド管理ツールを使用すると、クラスパスを心配する必要がなく、コードに集中する必要がなくなります。つまり、このリンクは、コマンドラインで実行するときにクラスパスを設定する方法を説明しています。


Androidで単体テストを実行しようとしたときにエラーが発生したため、これを読んでいます。私の場合、NoClassDefFoundErrorは、テストに依存関係がないために発生したことがわかりました。このようなエラーを防ぐために、依存性注入について考える必要があります。精巧な答えをありがとう。
典型的なダニー

130

で他の人の視点を修正したいと思いNoClassDefFoundErrorます。

NoClassDefFoundError のような複数の理由で発生する可能性があります

  1. ClassNotFoundException-コンパイル時に使用できるかどうかに関係なく、参照されるクラスの.classが見つかりません(つまり、ベース/子クラス)。
  2. クラスファイルが見つかりましたが、静的変数の初期化中に例外が発生しました
  3. クラスファイルが見つかり、静的ブロックの初期化中に例外が発生しました

元の質問では、参照されたクラスのjarファイルまたはそのパッケージフォルダーにCLASSPATHを設定することで修正できる最初のケースでした。

「コンパイル時に利用可能」とはどういう意味ですか?

  • 参照されるクラスはコードで使用されます。
    例:2つのクラスAとB(Aを拡張)。Bがコードで直接参照されている場合、コンパイル時に使用できます。つまり、A a = new B();

「コンパイル時には利用できません」とはどういう意味ですか?

  • コンパイル時のクラスとランタイムクラスは異なります。たとえば、基本クラスは、Class.forName( "classname")などの子クラスのクラス名を使用してロードされ
    ます。例:2つのクラスAとB(Aを拡張)。コードには
    A a = Class.forName( "B")。newInstance();があります。

私の場合、私はクラスをコンパイルしていました、彼らはそれをappと呼ばれるディレクトリに移動しました。package app;サブディレクトリアプリに移動する前に、行を追加して再コンパイルする必要がありました。
taco

1
上記の3とは別に、ClassLoaderはこのようなエラーを引き起こす可能性があります。これは基本的にClassNotFoundExceptionです。このシナリオでは、クラスはクラスパスに存在する可能性がありますが、異なるClassLoaderからロードしようとします
Fahad

2と3はクラスローダー固有です。javadocツールによると、例外が唯一の理由1のために意図された
サミュエル

1
私は、それがないNoClassDefFoundErrorが、それのExceptionInInitializerErrorケース2.Classファイル位置ケース2とケース3をテストしているが、ケース3.Classファイルが置か静的変数の初期化中に例外が静的なブロックを初期化中に、例外が発生引き上げ
マイケル・

1
@Michael、このリンクは、あなたのスタックトレースがNoClassDefFoundErrorその場合にも表示されることを示しています:archive.is/YPbYI#selection-2107.0-2115.13
Pacerier

15

NoClassDefFoundErrorは、クラスがのクラスパスにCompile time存在するが、のクラスパスには存在しないことを意味しRuntimeます。

Eclipseを使用している場合、あなたが持っていることを確認しshapeslinepointsそしてspaceobjects内のエントリなど.classpathのファイル。


1
実行時にtry / catchを介してそれを処理する方法は?
Mavenのツ

5
この答えはあなたがそれを書く方法を正しくありません。正しい例は次のとおりです。「このエラーの考えられる原因の1つは...」ですが、クラスローダーを使用して実行時にJARファイルをロードする場合など、このエラーが発生する理由は他にも考えられます。
Elmue

13

コンパイルおよび実行中にこれらのエラーのいずれかが発生した場合:

* NoClassDefFoundError

* Error: Could not find or load main class hello

* Exception in thread "main" java.lang.NoClassDefFoundError:javaTest/test/hello 
(wrong name: test/hello)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        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)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

-------------------------- ソリューション -----------------------

問題は主にパッケージ編成にあります。ソースコードのパッケージ分類に関して、クラスをフォルダーに適切に配置する必要があります。

On Compiling process use this command:

javac -d . [FileName.java]

To Run the class please use this command:

java [Package].[ClassName]

「-d」。javacコマンドでは、すべての.classファイルをルートディレクトリに配置する代わりに、パッケージのフォルダー構造を作成するというトリックを行っています。
ホルヘサンパヨ

9
java.lang.NoClassDefFoundError

は、コンパイル時に何かが見つかりましたが、実行時には見つかりませんでした。クラスパスに追加する必要があるだけかもしれません。


15
どうやってするか?
Narendra Singh

あなたが求めているコンテキストに依存します。
sschrass 16

6

目的のクラスがクラスパスで見つからない場合、クラス定義例外は発生しません。コンパイル時のクラス:クラスはJavaコンパイラから生成されましたが、実行時になんらかの依存クラスが見つかりません。

簡単な例を1つ見てみましょう。

public class ClassA{
public static void main(String args[]){
     //Some gibberish Code...
     String text = ClassB.getString();
     System.out.println("Text is :" + text);
}

}

public class ClassB{
    public static String getString(){
      return "Testing Some Exception";
 }
}

ここで、上記の2つのJavaソースコードがいくつかのフォルダに配置されていると想定してみましょう。「NoClassDefinationFoundExceptionDemo」

シェルを開きます(Javaがすでに正しくセットアップされていると仮定)

  1. フォルダ「NoClassDefinationFoundExceptionDemo」に移動します
  2. Javaソースファイルのコンパイルjavac ClassB javac ClassA
  3. 両方のファイルが正常にコンパイルされ、ClassA.classおよびClassB.classと同じフォルダーにClassファイルが生成されます
  4. ここで、現在の作業ディレクトリへのClassPathをオーバーライドしているため、次のコマンドjava -cpを実行します ClassA とそれは正常に動作し、画面に出力が表示されます
  5. ここで、現在のディレクトリからClassB.classファイルを削除したとしましょう。そして今、あなたは再びコマンドを実行します。 java -cp。ClassAこれで、NoClassDefFoundExceptionが表示されます。ClassAの依存関係であるClassBがクラスパス(つまり、現在の作業ディレクトリ)に見つからないため。

5

JavaのNoClassDefFoundError:

定義:

NoClassDefFoundErrorは、コンパイル時にクラスが存在していても、実行時にJavaクラスパスで利用できない場合に発生します。通常、NoClassDefFoundErrorを取得すると、ログの以下の行が表示されます:スレッド "main"の例外java.lang.NoClassDefFoundError

考えられる原因:

  1. クラスはJavaクラスパスでは使用できません。

  2. jarコマンドを使用してプログラムを実行している可能性がありますが、クラスがマニフェストファイルのClassPath属性で定義されていません。

  3. 起動スクリプトは、クラスパス環境変数を上書きしています。

  4. NoClassDefFoundErrorはjava.lang.LinkageErrorのサブクラスであるため、ネイティブライブラリのような依存関係の1つが利用できない場合にも発生する可能性があります。

  5. ログファイルでjava.lang.ExceptionInInitializerErrorを確認します。静的初期化の失敗によるNoClassDefFoundErrorは非常に一般的です。

  6. J2EE環境で作業している場合、複数のクラスローダー間でのクラスの可視性もjava.lang.NoClassDefFoundErrorを引き起こす可能性があるため、詳細な説明については、例とシナリオのセクションを参照してください。

可能な解決策:

  1. 必要なすべてのJavaクラスがアプリケーションのクラスパスに含まれていることを確認します。最も一般的な間違いは、一部の外部ライブラリに依存するJavaアプリケーションの実行を開始する前に、必要なすべてのクラスを含めることではありません。

  2. アプリケーションのクラスパスは正しいですが、アプリケーションの実行前にクラスパス環境変数がオーバーライドされます。

  3. 前述のExceptionInInitializerErrorがアプリケーションのスタックトレースに表示されないことを確認します。

リソース:

Java J2EEでjava.lang.NoClassDefFoundErrorを解決する3つの方法

java.lang.NoClassDefFoundError – No Class Def Found Errorを解決する方法


3

プロジェクトがなどのパッケージにcom.blahcodeあり、クラスが呼び出されたMain場合、コンパイルされたファイルはのようなディレクトリ構造で出力される可能性があります./out/com/blahcode/Main.class。これは特にIntelliJ IDEAに当てはまります。

シェルまたはcmdから実行しようとすると、サブディレクトリとしてcd含まcomれているものに実行する必要があります。

cd out
java -classpath . com.blahcode.Main

1

何ヶ月もNetBeansプロジェクトに取り組んだ後、「メモリ不足」アラートが表示された直後に、突然、NoClassDefFoundErrorメッセージが表示されました。クリーンなリビルドを行っても効果はありませんでしたが、Netbeansを完全に閉じてプロジェクトを再度開いても、エラーレポートはありませんでした。


1

この回答は、サービスで発生するjava.lang.NoClassDefFoundErrorに固有ですです。

私のチームは最近、サービスを提供するrpmをアップグレードした後にこのエラーを確認しました。rpmとその中のソフトウェアはMavenで構築されていたため、rpmに含まれていないコンパイル時の依存関係があったようです。

ただし、調査したところ、見つからなかったクラスは、スタックトレース内のいくつかのクラスと同じモジュールにありました。さらに、これはビルドに最近追加されたばかりのモジュールではありませんでした。これらの事実は、Mavenの依存関係の問題ではない可能性があることを示しています。

最終的な解決策:サービスを再起動します!

rpmのアップグレードにより、基になるjarファイルのサービスのファイルハンドルが無効になったようです。次に、サービスは、メモリにロードされていないクラスを見つけ、jarファイルハンドルのリストからそのクラスを検索しましたが、クラスをロードできるファイルハンドルが無効化されていたため、クラスを見つけることができませんでした。サービスを再起動すると、すべてのファイルハンドルが再ロードされ、rpmのアップグレード直後にメモリ内に見つからなかったクラスをロードできるようになりました。

その特定のケースが誰かを助けることを願っています。


1

私は今日問題に直面しました。私はAndroidプロジェクトを持っていて、プロジェクトを有効にしmultidexた後、もう開始しません。

その理由は、に追加してApplication class他のすべての前に呼び出す必要がある特定のmultidexメソッドを呼び出すのを忘れていたためです。

 MultiDex.install(this);

このチュートリアルに従ってmultidexを正しく有効にしてください。https://developer.android.com/studio/build/multidex.html

これらの行をアプリケーションクラスに追加する必要があります

 @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(base);
     MultiDex.install(this);
  }

1

私のプロジェクトでは、問題を解決したのは、Chromeブラウザーとchromedriverに互換性がないことでした。ブラウザーを開くことさえできない非常に古いバージョンのドライバーがありました。両方の最新バージョンをダウンロードして問題を解決しました。どのようにして問題を発見しましたか?アプリケーションに古いバージョンのFFを組み込んだSeleniumネイティブFirefoxドライバーを使用してプロジェクトを実行したため、問題はブラウザーとドライバーの間の非互換性であることに気付きました。

これが私の同じような問題を抱えており、この同じエラーメッセージを生成したすべての人に役立つことを願っています。


0

このチェーンの私の2セント:

クラスパスに(の代わりに)フルパスが含まれていることを確認してください。そうでないと、エラーが発生する可能性があります。/home/user/lib/some_lib.jar~/lib/some_lib.jarNoClassDefFoundError


これは一部には当てはまりますが、より複雑です。1)クラスパスで相対パスを使用できますが、JVMの現在のディレクトリを基準にして、JVMで解決できる必要があります。これはそれらをもろくします。2)クラスパス環境変数を設定するときに、およびその他のシェルメタ文字を使用でき~ますが、変数の設定に使用しているメカニズムを提供するだけで、実際のパス名に展開されます。を使用bashしている場合は、「混合」結果が得られます。たとえばecho ~:~、コマンドラインで入力したときに表示される内容を確認してください。前者~は拡張されていますが、後者は拡張されていません。
スティーブンC

0

ランタイムクラスローダーによって読み込まれたクラスが、Javaルートローダーによって既に読み込まれたクラスにアクセスできない場合、NoClassFoundErrorが発生します。異なるクラスローダーは異なるセキュリティドメインにあるため(Javaによると)、jvmでは、ルートローダーによって既にロードされているクラスをランタイムローダーのアドレス空間で解決できません。

「java -javaagent:tracer.jar [YOUR java ARGS]」を使用してプログラムを実行します

ロードされたクラスと、クラスをロードしたローダー環境を示す出力を生成します。クラスを解決できない理由を追跡することは非常に役立ちます。

// ClassLoaderTracer.java
// From: https://blogs.oracle.com/sundararajan/entry/tracing_class_loading_1_5

import java.lang.instrument.*;
import java.security.*;

// manifest.mf
// Premain-Class: ClassLoadTracer

// jar -cvfm tracer.jar manifest.mf ClassLoaderTracer.class

// java -javaagent:tracer.jar  [...]

public class ClassLoadTracer 
{
    public static void premain(String agentArgs, Instrumentation inst) 
    {
        final java.io.PrintStream out = System.out;
        inst.addTransformer(new ClassFileTransformer() {
            public byte[] transform(ClassLoader loader, String className, Class classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException {

                String pd = (null == protectionDomain) ? "null" : protectionDomain.getCodeSource().toString();
                out.println(className + " loaded by " + loader + " at " + new java.util.Date() + " in " + pd);

                // dump stack trace of the thread loading class 
                Thread.dumpStack();

                // we just want the original .class bytes to be loaded!
                // we are not instrumenting it...
                return null;
            }
        });
    }
}

0

Android Studioで発生しました。

うまくいった解決策:スタジオを再起動するだけです。


0

Android Studioを使用したAndroid開発でも同じ問題が発生しました。提供されているソリューションは一般的であり、私には役立ちませんでした(少なくとも私にとって)。何時間もの調査の後、私は次の解決策を見つけ、android studioを使用して開発を行っているandroid開発者に役立つかもしれません。以下のように設定を変更します。[設定]-> [ビルド、実行、配置]-> [インスタント実行]->最初のオプションのチェックを外します。

この変更により、私は稼働しています。これが私の開発者の友人に役立つことを願っています。


0

この例外のエラーの原因の1つは、Proguardの定義に一貫性がないことです。

-libraryJars "path.to.a.missing.jar.library"。

これは、jarが存在する場合にコンパイルと実行が正常に機能するが、クリーン&ビルドが失敗する理由を説明します。新しく追加されたjarライブラリをproguardセットアップで定義することを忘れないでください!

jarがまったく存在しないときに届く同様のantメッセージと簡単に混同されるため、Proguardからのエラーメッセージは実際には標準に達していないことに注意してください。最下部にのみ、問題に対処するための小さなプローガーのヒントがあります。したがって、従来のクラスパスエラーなどの検索を開始することはかなり論理的ですが、これは無駄になります。

明らかに、NoClassDefFound例外は、実行されたときの結果になります。たとえば、生成された実行可能なjarは、プロガードの一貫性の欠如に基づいて構築されます。ある人はそれを「地獄」を守ると呼びます


0

私が使用Eclipse用FileSyncのプラグインを、私はTomcat上でデバッグを生きることができると私は受け取ったのでNoClassFoundError、私はのための同期エントリを追加していたので、binEclipseワークスペース内のディレクトリ=> classesにあるmetadataTomcat用のほかのフォルダの同期を追加していなかったextlibEclipseでのディレクトリ=>

C:\Users\Stuart\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\myApp\WEB-INF\lib


0

RCP(Rich Client Platform)とも呼ばれるEclipseベースのアプリケーションを開発しています。そして、リファクタリング(あるクラスをプラグインから新しいクラスに移動)した後、私はこの問題に直面しています。

プロジェクトのクリーンアップとMavenの更新は役に立ちませんでした。

この問題は、自動的に更新されていないBundle-Activatorが原因で発生した。新しいプラグインのMANIFEST.MFにあるBundle-Activatorを手動で更新すると、問題が解決しました。


0

最近このようにAndroid Studioでmultidexサポートを追加した場合:

// To Support MultiDex
implementation 'com.android.support:multidex:1.0.1'

だからあなたのソリューションは単にアプリケーションではなくMultiDexApplicationから拡張されています

public class MyApp extends MultiDexApplication {


0

クラスに静的ハンドラがあるかどうかを確認します。もしそうなら、注意してください、静的ハンドラはルーパーを持つスレッドでのみ開始される可能性があるため、クラッシュはこのようにトリガーされる可能性があります:

1.最初に、単純なスレッドでクラスのインスタンスを作成し、クラッシュをキャッチします。

2.その後、メインスレッドでクラスのフィールドメソッドを呼び出すと、NoClassDefFoundErrorが発生します。

ここにテストコードがあります:

public class MyClass{
       private static  Handler mHandler = new Handler();
       public static int num = 0;
}

MainアクティビティのonCreteメソッドに、テストコードパーツを追加します。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //test code start
    new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                MyClass myClass = new MyClass();
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }
    }).start();

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    MyClass.num = 3;
    // end of test code
}

handlerThreadを使用してハンドラを初期化する簡単な方法があります。

private static Handler mHandler;
private static HandlerThread handlerThread = new HandlerThread("newthread");
static {
    handlerThread.start();
    mHandler = new Handler(handlerThread.getLooper(), mHandlerCB);
}

0

モジュールの外部でテストクラスを使用しないでください

私には解決策がありません。「コンパイル時に存在し、実行時に存在しない」ケースのもう1つの味です。

別のモジュールにある別のテストクラスのJUnitテストクラスの非常に便利なメソッドを使用しようとしました。テストコードはパッケージ化されたjarの一部ではないため、これはノーノーですが、Eclipse内からユーザークラスに表示されるように見えるため、気付かなかった。

私の解決策は、プロダクションコードの一部である既存のユーティリティクラスにメソッドを配置することでした。


0

私の環境では、ユニットテストでこの問題が発生します。* .pomに1つのライブラリ依存関係を追加した後、それは修正されました。

例えば:

エラーメッセージ:

java.lang.NoClassDefFoundError: com/abc/def/foo/xyz/Iottt

pom:

<dependency>
    <groupId>com.abc.def</groupId>
    <artifactId>foo</artifactId>
    <scope>test</scope>
</dependency>

0

Gitブランチの変更後にこのエラーが発生しました。Eclipseの特定のケースでは、org.eclipse.wst.common.componentファイルの.settingsディレクトリに行がありませんでした。ご覧の通り

Mavenインストールを使用してプロジェクトの依存関係を復元すると役立ちます。

ここに画像の説明を入力してください


0

を使用している場合はgradlew、に移動し./gradle/wrapper/gradle-wrapper.propertiesて変更しますdistributionUrlし、正しいバージョンのgradleにしてください。

JDK14を使用している場合は、

distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip

-1

それは私のgenymotionデバイスでよく起こります。Genymotionがインストールされているドライブに十分なメモリがあることを確認してください。


そのことについて何か言及はありますか?
Wai Ha Lee

いいえ、定期的にディスクスペースが足りなくなりました。十分な量を解放しないと、Genymotion仮想デバイスを削除/再インストールしないと、このエラーが発生し続けます。
トッティア2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.