2011-07-14 4 views
0

問題があります。Java - 実行時にコンパイルされていない.javaファイルの文字列にアクセスする

私はたくさんのJavaファイル(.java)を用意しています。それらはすべてクラス宣言と文字列を含んでいます。私は配列で物事をする必要があります。それにアクセスする最善の方法は何ですか?

私はJavaCompilerクラスを使用しようとしましたが、動作していないようです - 正規表現などを使用する必要がありますか?

は、ここでファイルがどのように見えるかのサンプルです:

package com.mypack.costmgr; 

public class Cost_en extends java.util.ListResourceBundle { 

static final Object[][] contents = new String[][] { 
    {"ACTIVE", "ACTIVE"}, 
    {"Joe", "asfag"}, 
    {"lolcats", "cheezburger"}, 
    {"HELP", "OH GOD NOT THE BEES"}, 
    {"asdfffff", "hacks"} 
}; 

public Object[][] getContents() { 
    return contents; 
} 
} 

そしておそらく、これらのファイルの百があります。

したがって、要約すると、そのデータにアクセスする最も良い方法は何ですか?

(もちろん、私は単に私のプロジェクトでそれらをコンパイルすることはできません。)

+0

なぜ "(明らかに私はプロジェクトでそれらをコンパイルすることはできません)"なぜですか? – g051051

+0

JavaCompilerは「うまくいきません」と言っています。何が起こるのですか?これはJEE SDKの一部です。それは動作するはずです。あなたはblithelyその失敗を無視して、別の方法を試してはいけません。ここでエラーメッセージを詳述してください。 – Ladlestein

+0

これは簡単なスキャン/解析問題です。すべてのファイルが上記のようなものなら、 "contents ="が見えるまで読んでから、 "}"に達するまで行を読み、解析してください。 JSONスキャナを値の読み込みに強制することは可能かもしれませんが、カスタムコードで読み取るだけの価値はありません。 –

答えて

1

あなたは.javaファイルをコンパイルし、それらに.classファイルを確認する必要があります。次に、それらの.classファイルをclasspathに入れます。この時点で、それぞれのファイルの内容を参照することができます。 contentsので、次の操作を実行して、それへの参照を取得することができますstaticです:

class MyAwesomeClass 
{ 
    Object[][] myArray = Cost_en.contents; 
} 

Resource bundles

+0

実行時にすべて実行できますか? – guywhoneedsahand

+0

私はそう答えるでしょう。プログラムの実行中に、適用可能であれば参照を得るでしょう。 – Woot4Moo

+0

NetBeansはコードのコンパイルを拒否します。私はJavaCompilerを使用しています。 – guywhoneedsahand

0

Spring Rooは興味深いJava言語パーサとそのプラグインの操作のフレームワークを持っています。 AspectJをサポートするコードの一部として、ユーザーが作成した.javaファイルから情報を抽出するために使用されます。たぶんあなたは何をしようとしているのかを処理するRooプラグインを作成できますか?

+0

これはaspectJ待っている? – Woot4Moo

+0

AspectJは、Java用のAspect Orientedプログラミングシステムです。ここに入るにはあまりにも関与する方法... http://www.eclipse.org/aspectj/を参照してください。 – g051051

+0

私はアスペクト指向の解決策を探しているOPであると考えられていたaspectJが何であるか知っています – Woot4Moo

関連する問題