将包含数据的Java代码发送到.jar中

时间:2010-03-23 23:07:28

标签: java

我需要发布一些具有相关数据集的Java代码。它是设备的模拟器,我希望能够在一个.JAR文件中包含用于模拟记录的所有数据。在这种情况下,每个模拟记录包含四个字段(主叫方,被叫方,呼叫开始,呼叫持续时间)。

最好的方法是什么?我已经沿着将数据生成为Java语句的道路走了,但是IntelliJ似乎并不特别高兴处理100,000行Java源文件!

有更聪明的方法吗?

在C#/ .NET世界中,我将数据创建为单独的文件,将其作为资源嵌入到程序集中,然后使用反射在运行时将其拉出并访问它。我不确定Java世界中适当的比喻是什么。

FWIW,Java 1.6,适用于Solaris。

2 个答案:

答案 0 :(得分:7)

在JAR中包含静态资源文件是完全可以的。这通常使用属性文件来完成。您可以使用以下内容访问资源:

  Class.getResourceAsStream ("/some/pkg/resource.properties");

其中/是相对于类路径的根。

本文讨论主题Smartly load your properties

答案 1 :(得分:3)

当然,只需将它们包含在罐子里即可

InputStream is = this.getClass().getClassLoader().getResourceAsStream("file.name");

如果您将它们放在某些文件夹下,例如“数据”,那么只需执行

InputStream is = this.getClass().getClassLoader().getResourceAsStream("data/file.name");