2016-06-23 38 views
0

我有一些代码,使用在我的项目的子文件夹中的文本文件在eclipse中:./data/subfolder/test。 TXTJava:java.lang.Error:构建jar文件后的java.io.FileNotFoundException

的文件夹结构是这样的:许多文件

Projectname 
> src 
>> mainpackage 
>>> Main.java (this is executed when the jar is called) 
> data 
>> subfolder 
>>> test.txt 

不幸的是整个代码consits,所以我不能在这里发布,但该代码工作正常。

现在我将项目导出为jar包,并将其命名为jar文件。当这样做时,我得到FileNotFoundException。我需要做什么,如果项目导出为jar文件,还可以找到外部文件?

我需要做一些工作吗?有谁知道如何做到这一点?

任何建议是有帮助的!谢谢!

+0

你能交/这里截图文件夹结构弄个? – aksappy

+0

文本文件是否是你的jar文件的一部分? –

+0

@RahulYadav:我实际上不知道我只是将项目导出为jar文件。我从来没有这样做过。我怎么知道它是否是jar的一部分? – progNewbie

回答

1

如果您使用Eclipse的导出到jar功能,请将程序依赖的文件包含在src文件夹内。

更新结构看起来像这样

Projectname 
> src 
>> test.txt 
>> mainpackage 
>>> Main.java (this is executed when the jar is called) 

并在程序中,你可以很容易地通过使用

InputStream is = this.getClass().getResourceAsStream("test.txt"); 
+0

感谢您的解决方案。然而,上面提到的文件不是我使用的唯一文件。那么是否有可能在不改变整个文件夹结构的情况下解决这个问题? – progNewbie

+0

另一种方法是将根文件夹路径作为java参数传递。但是这样,每次应用程序只有在知道传递的参数后才能启动。 – aksappy

+0

我有其他的参数要通过,所以这不应该是一个问题。但是在传递根文件夹之后我该做什么? – progNewbie