从Jar文件中访问.dat文件

时间:2011-07-29 15:11:43

标签: java hadoop mapreduce

我正在尝试从公共类访问数据文件,这两个文件都位于JAR文件中。但是,当我在Hadoop集群上执行jar时,系统会抛出FileNotFoundException。底线是:在集群上运行应用程序时是否可以访问Jar中的资源,或者是否需要将资源单独复制到HDFS,对于上述任何一种情况,您将如何进行实施它?

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,如果JAR在CLASSPATH中,您可以使用类加载器或servlet上下文调用getResourceAsStream()来获取对该文件的InputStream的引用。

您无权访问文件路径。您提供相对于CLASSPATH的路径,类加载器找到该文件。您可以获取内容,但不能获取绝对位置。

你不应该想要绝对的位置。你会用它做什么?

您无法写入该文件。你无法改变任何事情。如果您的应用程序打包在WAR文件中,则无法更改其内容。