问题描述
问题描述:只是一个简单的测试程序,程序是由很简单的GUI界面组成,只是一个JTextArea加在一个JPanel里面然后把JPanel加在JFrame上。然后在文件夹File里面有一个file.txt文件。程序的功能就是从这个txt文件夹里面读取内容然后显示到JTextArea里面。用eclipse编译后,运行没有问题。开始用命令打包打包。建立一个新的文件夹Test,然后把编译好的Test.class,文件夹File放入Test文件夹。然后再在Test文件夹下创建一个MANIFEST.MF文件,内容为:Manifest-Version:1.0Main-Class:Test这个说明文件的格式肯定正确。进入CMD,进入到Test文件夹,输入打包命令,jarcmfMANIFEST.MFTest.jarTest.classFile打出来的包双击能够运行,可是没有读取到文件file.txt里面的内容,就是JTextArea是空的(之前在ECLIPSE运行没有问题)。然后我把File的一个复制文件夹放在与Test.jar平级的目录下又能读了。从道理上说程序应该从JAR文件里面的File->file.txt里面读取内容的。jar文件的目录有Test.classFile->file.txtMITA-INF->MANIFEST.MF(MANIFEST.MF内容为:Manifest-Version:1.0Main-Class:Test问题的大概就是这样。为什么不能从JAR里面的文件夹读取我要的文件内容呢?还是我有什么地方错了?请高手们指点一下~~!本人弄这个问题弄得要气短身亡了!!!!!!!还有我用ECLIPSE导出来的JAR包是一个问题。。。。高手们来吧!!!!!
解决方案
解决方案二:
怎么没有高人来回答一下呢?谢谢啊~
解决方案三:
你怎么打开的文件啊..用相对路径..
解决方案四:
当然使用相对路径咯File/file.txt为什么不行我就很郁闷
解决方案五:
应该是这个文件的路径有问题。路径应该是基于classpath的(因为是在jar中),而不能是file路径(传统的绝对或相对路径)
解决方案六:
用fat.jar打包
解决方案七:
我也遇到过同样的问题,不过我的是图片显示不出来,jar包我放在桌面,我把图片放在桌面才显示出来。顶顶!!
解决方案八:
1.假设你的file.txt放在jar下面的位置为:source/file.txt读取这个文件时候要这样写InputStreamis=getClass().getResourceAsStream("source/file.txt");2.如果文件是放在包com.test下而且文件读取类也是放在com.test包下则有二种写法:InputStreamis=getClass().getResourceAsStream("com/test/file.txt");或者:InputStreamis=getClass().getResourceAsStream("file.txt");3.如果你的文件是放在和jar平级的目录下或子目录下(比如jar放在c:javaapptest.jar文件:c:javaapp\file.txt或者c:javaappsourcefile.txt)Filefile=newFile("file.txt");或者Filefile=newFile("source/field.txt");FileInputStreamfis=newFileInputStream(file);因此你如果要读取jar中文件要按照1或者2去做
解决方案九:
7楼正解
解决方案十:
路过学习
解决方案十一:
7楼有道理。哈哈