データを分析するコードをいくつか作成しましたが、一般的な処理ではなく、データの非常に特定のソースに合わせて調整されたコードが必要であることに気付きました。個々のソースは時間とともに変化する可能性があり、考慮すべきさまざまなソースがすでにいくつかあります。このケースに対処するために、私は Java から完全なスタンドアロン プログラムを起動していました。それは素晴らしいことですが、これにはいくつかの問題があり、代わりに動的クラス ローディングを使用することにしました。私は v 1.1 から Java を使用しており、ほとんどの Java の問題に精通していますが、この特定のタスクでは、間違ったバージョンの Java を使用しているのではないかと考えています。私のバージョンでは認識されていません。私が考えていた多分私は重要なインポートステートメントを省略しましたか?
従うべきいくつかの良い例を見つけました。その中で最も良い例は、私がやりたいことを正確に実行しているため、次のようです。http://media.techtarget.com/tss/static/articles/content/dm_classForname/DynLoad.pdf
そこにあるコードの最初の例は、まさに私がやりたいことのようなものなので、そこからいくつかのビットを持ち上げました-私が自分でやっていたこと(私が苦労していたもの)とそれほど違いはありませんが、そうなるでしょう. t コンパイル - さまざまな「シンボルが見つかりません」というエラー。私のコードはもっとかさばるので、私はそれらをすべて単独で試してみましたが、私のコードと同じようにコンパイルできません! そのコードは次のとおりです。
public class DynamicLoader
{
public static void main(String[] args) throws Exception
{
Class toRun = Class.forName(args[0]);
Method mainMethod = findMain(toRun);
mainMethod.invoke(null, new Object[] { args });
}
private static Method findMain(Class clazz) throws Exception
{
Method[] methods = clazz.getMethods();
for (int i=0; i<methods.length; i++)
{
if (methods[i].getName().equals("main"))
return methods[i];
}
return null;
}
}
コンパイルしようとすると、次のようになります。
# javac DynamicLoader.java
DynamicLoader.java:11: error: cannot find symbol
private static Method findMain(Class clazz) throws Exception
^
symbol: class Method
location: class DynamicLoader
DynamicLoader.java:8: error: cannot find symbol
Method mainMethod = findMain(toRun);
^
symbol: class Method
location: class DynamicLoader
DynamicLoader.java:13: error: cannot find symbol
Method[] methods = clazz.getMethods();
^
symbol: class Method
location: class DynamicLoader
3 errors
私の Java バージョン: javac 1.7.0_45
問題は非常に単純/基本的なものだと思いますが、ドキュメントを見ても手がかりはありません!