前提・実現したいこと
【前提】
・gradleとjava言語を用いてソース自動生成ツールを開発しています。
【実現したいこと】
・javaのコマンドライン引数に記載したパスに格納されているjavaファイルをリフレクションしたいです。
【実行イメージ】
$ java 実行ファイル.java (リフレクションしたいjavaファイルが存在する絶対パス)
現在、コマンドライン引数に記載したパスに格納されているjavaファイルを実行ファイルの近くにコピーして
class.forName()メソッドでクラスオブジェクト生成しようと試みていましたが、
以下のようにエラーになってしまいます。
コピーは正常で、ファイル名はFQN形式で間違えておりません。
上記の「実現したいこと」に記載しました
絶対パスを引数にリフレクションをしたいです。
なにか良い解決策はございませんでしょうか。
みなさま
ご多用とは存じますが
お力添えいただけないでしょうか。
よろしくお願いいたします。
発生している問題・エラーメッセージ
java.lang.ClassNotFoundException: Template.Controller_register
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at tool.App.getMetaData(App.java:177)
at tool.App.main(App.java:99)
at tool.Main.main(Main.java:8)
該当のソースコード
//リフレクションを用いてファイル名からそのファイルのクラスをインスタンス化する
obj = Class.forName(fileInfo.getFileName()).newInstance();
あなたの回答
tips
プレビュー