Java - 在运行时访问非编译的.java文件中的字符串

时间:2011-07-14 21:48:13

标签: java runtime-compilation

我遇到了问题。

我有一堆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;
 }
}

这些文件可能有一百个。

因此,总结一下:访问该数据的最佳方式是什么?

(显然,我不能简单地用我的项目编译它们。)

2 个答案:

答案 0 :(得分:1)

您必须编译.java个文件并制作.class个文件。然后将这些.class文件放在classpath上。此时,您现在可以引用每个文件的内容。由于contentsstatic,您可以通过执行以下操作获得对它的引用:

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

Resource bundles

答案 1 :(得分:0)

Spring Roo为他们的插件提供了一个有趣的Java语言解析器和操作框架。它用于从用户创建的.java文件中提取信息,作为支持AspectJ的代码的一部分。也许你可以创建一个Roo插件来处理你想要做的事情?