我用NetBeans编写了一个工具,当我在IDE中运行它时,它正在工作。我已经将工具所需的所有源文件放入resources
文件夹。
在Build and Clean之后,程序没有启动,它抛出了一个异常--> File not found.
我使用相对路径来使用我需要的数据,例如:
view.jIconRed1.setIcon(
new javax.swing.ImageIcon(
getClass().getResource("/usaTrafficResearchTool/resources/Icons/CheckMark22x20.png")));
它工作得很好,直到我建立它。在我尝试了一些东西之后,Clean和Build甚至不再工作了:
更新:线程"AWT-EventQueue-0"异常java.lang.NullPointerException
谢谢大家的帮助!Aprreciate。
下面是Stacktrace("第一个",它找不到它应该读取的。txt文件):
C:Usersrkryp_000>java -jar "D:RaffaDokumenteUSATrafficTool_V2.1USATrafficLawResearchTooldistUSATrafficLawResearchTool.jar"
Sep 24, 2015 12:53:32 PM presenter.Presenter getStateLinesFromTxt
SCHWERWIEGEND: null
java.io.FileNotFoundException: file:D:RaffaDokumenteUSATrafficTool_V2.1USATrafficLawResearchTooldistUSATrafficLawResearchTool.jar!usaTrafficResearchToolresourcesDatastateResources.txt
(Die Syntax f³r den Dateinamen, Verzeichnisnamen oder die Datentrõgerbezeichnung ist falsch)
(英文:文件名、文件夹名或驱动器名的语法错误)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at presenter.Presenter.getStateLinesFromTxt(Presenter.java:89)
at presenter.Presenter.setStateList(Presenter.java:63)
at presenter.Presenter.main(Presenter.java:194)
我的文件阅读器是这样的:
private static void setStateList() throws URISyntaxException {
URL fileNameAsUrl = MainScreen.class.getClassLoader().getResource("usaTrafficResearchTool/resources/Data/stateResources.txt");
private static List getStateLinesFromTxt(URL fileNameAsUrl) {
List array = new List();
try {
BufferedReader reader = new BufferedReader(new FileReader(new File(fileNameAsUrl.getFile())));
String line;
我检查了.jar文件是否被正确打包,看起来是这样,.txt文件的路径实际上是正确的。
感谢您一直以来的支持!!您正在类路径中搜索文件,因此映像没有正确打包到jar文件中。
打开jar文件,例如使用WinZip,查看文件是否存在。如果没有,修复构建脚本。
当您使用相对路径Java查找相对于当前运行的文件时,因此Java可能会在IDE中运行该文件时找到该文件,而不是在您尝试在web服务器中运行它时。getClass(). getresource(…)查找相对于类路径的文件,即jar中所有编译过的.class文件所在的位置。
确保该文件包含在jar中,如果没有,IDE中可能有一个选项,并确保jar中的路径看起来与IDE中的路径相同。
将CheckMark22x20.png
文件放入src/resources/Icons/
(src/resources/Icons/CheckMark22x20.png
)文件夹并更改代码为
view.jIconRed1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/Icons/CheckMark22x20.png")));
现在清理并构建jar文件。