.classファイルへのパスがあり、実行中のプログラムからインスタンス化する必要があります。 私はこのクラスを "ロード"する必要がありますが、そのクラスパスは私の.jarまたは私のプロジェクトにありません。クラスパスはClass.forName()を使用できません。 どうすればこのクラスをインスタンス化できますか?リフレクションを使用して.classファイルからJavaクラスをインスタンス化する
答えて
あなたに次の続行することができます
File myFolder = new File("myfolder");
URLClassLoader classLoader = new URLClassLoader(new URL[]{myFolder.toURI().toURL()}, Thread.currentThread().getContextClassLoader());
Class<?> myClass = Class.forName("my.package.Myclass", true, classLoader);
Myclass obj = (Myclass)myClass.newInstance();
まずあなたが親としてコンテキストClassloader
を使用してURLClassLoader
のインスタンスを作成し、その後、あなたは、この新しいClassLoader
を使用してクラスをロードし、最終的にあなたがインスタンスを作成します(ここではそれが呼び出します引数のないコンストラクタ)
を使用する必要があります。うまくいきますが、Class.forName()で呼び出された「MyClass」のパッケージ名を渡すことはできますか?私はパッケージを知っているので、私のプログラムのために "アドオン"を作成したい場合、彼のクラスは私のものと同じパッケージ名でなければなりません。私はクラス名を簡単に得ることができます(.classの名前)が、私はそのパッケージの名前を得ることができますか? – psyked
これは、クラスファイル自体に定義されているディレクトリとパッケージを尊重する必要があるため、_MyClass.class_が_myfolder_にある場所によって異なります。パッケージ名がfoo.barの場合、ファイルは_myfolder/foo/bar/MyClass.class_にあり、 "foo.bar.MyClass"を使用する必要があります。クラスに定義されているパッケージがない場合は、クラスを_myfolder_の直下に配置する必要があります。次に、実際には "MyClass" –
- 1. オブジェクトをインスタンス化し、JAVAのリフレクションを使用して.classファイル経由でメソッドを呼び出すか?
- 2. Javaでリフレクションして内部クラスをインスタンス化する方法は?
- 3. Javaリフレクションを使用したオブジェクトのインスタンス化
- 4. Androidでリフレクションを使用してリスナーをインスタンス化する方法
- 5. Javaの `InvocationTargetException`は、リフレクションによるクラスのインスタンス化
- 6. Java/Mockito/PowerMockitoを使用してプライベートコンストラクタでクラスをインスタンス化
- 7. リフレクションを使用して、クラスのすべてのコレクションプロパティがインスタンス化されることをテストします。
- 8. Javaリフレクションを使用してインタフェースを直接インスタンス化することはできますか?
- 9. Javaのリフレクション - インスタンス化例外インタフェース
- 10. リフレクションを使用してクラスのリストからプロパティから値を取得する
- 11. クラス・タイプからクラスをインスタンス化する
- 12. Pythonのリストからタプルを使用してクラスをインスタンス化する
- 13. スクリプトを使用してJavaで.classファイルを起動する
- 14. リフレクションを使用しないクラスオブジェクトのインスタンス化
- 15. Javaジェネリックとリフレクション|どのようにジェネリッククラスをインスタンス化する
- 16. クラスのインスタンス化Java
- 17. リフレクションを使用してリストのインスタンスを作成する#
- 18. Groovyクロージャを使用してコンストラクタパラメータを使用してJava抽象クラスをインスタンス化する方法
- 19. JSON文字列をリフレクションを使用してクラスに逆シリアル化する
- 20. クラス内の変数を使用してPythonでクラスをインスタンス化
- 21. AppDomainを使用してDLL内のクラスをインスタンス化する
- 22. PHP:クラスをインスタンス化し、別のクラスのメソッドを使用する
- 23. コンパニオンオブジェクトを使用したクラスのインスタンス化
- 24. reduxを使用するクラスのインスタンスをインスタンス化する方法
- 25. JSONオブジェクトからクラスをインスタンス化する
- 26. クラスをJavaで静的としてインスタンス化できますか?
- 27. 子クラスを使ったJavaのリフレクション
- 28. Javaでのリフレクションを使用した列挙型クラスの検索
- 29. AspectJ - パブリッククラスでないオブジェクトをインスタンス化するためにリフレクションを使用する
- 30. xmlbeans使用時にリフレクションを使用してインスタンスを作成する
URLClassLoader – ControlAltDel