Jar 文件不起作用(在 cmd 中运行时出现 filenotfoundexception)

巴仁米克

我知道这个话题已经出现了很多次,并且在解决方案后我一直在查看 stackoverflow 几个小时,但仍然无法正常工作。从 Eclipse 导出可运行的 jar 文件时,我无法使 jar 文件工作。当我运行该程序时,该程序在 Eclipse 中运行良好,但是当我尝试打开 jar 文件时,屏幕会变黑一秒钟,然后什么也没有发生。我尝试使用 java -jar namefile.jar 在命令中打开它,并且有 filenotfoundexception。当我尝试运行它时,这就是它在 cmd 中的样子。

有人有什么建议吗?谢谢

在此处输入图片说明

问题是你如何获得资源。

您将 wav 文件放在src文件夹中,然后尝试使用 FileInputStream 获取它们,这是行不通的。

如果您将文件放入 jar 中,您应该通过以下方式访问它们:

getClass().getResourceAsStream(filepath)

像这样的东西。

public class LoadFile {
    public static void main(String[] args)  throws Exception  {
        InputStream stream = 
            LoadFile.class.getResourceAsStream("/songwavs/s1_..._.wav");
            AudioSystem.getAudioFileFormat(stream);
            AudioSystem.getAudioFileFormat(url);
    }
}

这只是一个例子,重点是作为 jar 内的资源,ClassLoader 是获取它的工具。

因此,在非静态方法中,您可以使用:

public void myMethod() throws Exception{
    InputStream stream = getClass().getResourceAsStream("/songwavs/s1_..._.wav");
    AudioSystem.getAudioFileFormat(stream);
}

在某些情况下,您需要像这样使用 Thread 类加载器:

public void myMethod2() throws Exception{
    InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("/songwavs/s1_..._.wav");
    AudioSystem.getAudioFileFormat(stream);
}

然后,您可以在从 eclipse 或 jar 运行时读取您的文件。

关于如何打包和部署应用程序,还有很多可以说的,但这只是一个开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以jar运行时出现FileNotFoundException

我如何在CMD此代码运行时,我点击jar文件

使用jar文件运行时出现Spring Boot thymeleaferror

无法运行jar文件或Cmd

如果从 cmd 或 .py 文件运行,则包不起作用...... PYTHON

为什么执行jar的通配符在Docker CMD中不起作用?

classLoader.getResource在jar文件中不起作用

jar文件在dist中不起作用(netbeans的wing项目)

从CMD运行时schtasks命令有效,但从VBScript运行时不起作用

在iisnode上运行时从nodeJS应用执行cmd命令不起作用

“ npm运行CMD”不起作用

govendor在cmd中不起作用

将应用程序作为jar运行时会给出fileNotFoundException

批处理文件正在运行时,cmd中出现奇怪的输出

在运行时生成JAR文件

从cmd运行jar

在Docker容器上运行JAR时写入文件夹中的文件会导致FileNotFoundException

访问jar中的json文件时出现java.io.FileNotFoundException

列出和读取 JAR 文件中 java 包中的所有文件不起作用

當我在 linux consol 中執行我的“sh”文件時,Jar 文件不起作用

Jar不起作用,但是程序在IDE中起作用

ruby cmd在文件夹rbenv中不起作用:ruby:找不到命令

热加载.jar文件:随机FileNotFoundException

Java:我自己的 MANIFEST.MF 文件在 maven 构建的 jar 中不起作用

如果它位于jar文件中,则基于Spring Annotation的控制器不起作用

使用javac -cp将Jar文件添加到Java程序中不起作用

Spring Webflux:我的 JAR 中的 FileNotFoundException

尝试在不使用xampp的情况下在cmd中运行php文件,但是它不起作用

运行 .jar 文件时的 JavaFX 运行时异常