Java程序在构建后不运行



我用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文件。

相关内容

  • 没有找到相关文章

最新更新