抱歉,如果在西班牙语中“no existe el archivo o el directorio”表示“不存在这样的文件或目录”。
/home/user1/netbeansprojects/project1/dist/project1.jar!/music/2.wav线程“thread-0”java.lang.illegalstateexception:java.io.fileNotFoundException://home/user1/netbeansprojects/project1/dist/project1.jar!/music/2.wav(No existe el archivo o el directorio)在logic.audiofileplayer.run(audiofileplayer.java:54)上的directorio)在java.io.fileInputStream.open(本机方法)在java.io.fileInputStream.(fileInputStream.java:146)在com.sun.media.sound.waveFloatFileReader.getAudioInputStream(waveFloatFileReader.java:164)在javax.sound.sampled.audioSystem.getAudioInputStream(audioSystem.java:1179)在logic.audioFilePlayer.run(
代码如下:
boolean loop = true;
private final URL url = getClass().getResource("/music/2.wav");
private final String convertFilePath = url.toString();
String filePath = convertFilePath.substring(convertFilePath.lastIndexOf("file:") + 5);
@Override
public void run() {
while (loop == true) {
final File file = new File(filePath);
System.out.println(filePath);
try (final AudioInputStream in = getAudioInputStream(file)) {
final AudioFormat outFormat = getOutFormat(in.getFormat());
final Info info = new Info(SourceDataLine.class, outFormat);
try (final SourceDataLine line
= (SourceDataLine) AudioSystem.getLine(info)) {
if (line != null) {
line.open(outFormat);
line.start();
stream(getAudioInputStream(outFormat, in), line);
line.drain();
line.stop();
}
}
} catch (UnsupportedAudioFileException | LineUnavailableException | IOException e) {
throw new IllegalStateException(e);
}
}
}
private AudioFormat getOutFormat(AudioFormat inFormat) {
final int ch = inFormat.getChannels();
final float rate = inFormat.getSampleRate();
return new AudioFormat(PCM_SIGNED, rate, 16, ch, ch * 2, rate, false);
}
private void stream(AudioInputStream in, SourceDataLine line)
throws IOException {
final byte[] buffer = new byte[4096];
for (int n = 0; n != -1; n = in.read(buffer, 0, buffer.length)) {
line.write(buffer, 0, n);
}
}
在使用JAR时,您应该处理jar:file
URL,而不是自己操作它并尝试创建file
对象。如果构造函数支持,则应将从getresource
获得的URL直接传递给构造函数。
// get the URL of the file as usual
URL url = getClass().getResource("/music/2.wav");
// get stream directly from URL, which could be a file or a jar:file
AudioInputStream in = getAudioInputStream(url);
如果这不起作用,并且库可以接受输入流,那么可以尝试使用ClassLoader#GetResourceAsstream
并将其传递给适当的构造函数/方法。
否则,您可以尝试将文件解压缩到本地的某个位置,然后传递该文件的路径。
问题内容: 我正在尝试使用ABAP函数调用将j2ee应用程序与SAP连接。当我将其作为带有热编码值的eclipse中的单个类运行时,它可以正常工作。当我尝试在JBoss服务器中运行它时,从前端获取一些值并将其传递给与我之前引用的类相同的java类,它显示以下异常 我在F:/ jar中有我的sapjco3.jar,在这里我也有ejb3-persistence.jar,jboss- ejb3x.jar
问题内容: 我可能尝试过,没有用。 该文件是: 是软件包的名称。 当我位于包含build.xml的项目中时,我启动了ant 这是我测试过的代码: 我制定了一份遗嘱,有或没有,有或没有 希望有人能帮助我。 谢谢 问题答案: 如果您具有以下包装布局 那么以下应该工作 使用时,您需要传递资源的完整合格名称,即包括程序包名称。 当使用时,路径-如果不是以- 开头,则是相对于试图加载资源的类所在的包的路径,
URL格式 ThinkCMF5采用的是混合模式路由,也就是说同时支持路由和PATH_INFO方式; 如果没有设置路由规则,默认就采用PATH_INFO方式,URL 格式如下: http://yourServerName/index.php/应用/控制器/操作/[参数名/参数值...] URL大小写 ThinkCMF5的 URL 是不区分大小写的,如: http://localhost/index
URL格式 ThinkCMF6.0采用的是混合模式路由,也就是说同时支持路由和PATH_INFO方式; 如果没有设置路由规则,默认就采用PATH_INFO方式,URL 格式如下: http://yourServerName/index.php(或其它入口文件)/应用/控制器/操作/[参数名/参数值...] URL大小写 ThinkCMF的 URL 是不区分大小写的,如: http://local
URL设计 ThinkPHP5.1在没有定义路由的情况下典型的URL访问规则是: http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...] 支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值…] 可以看到,无论是URL访问
清单在一行上只包含版本,然后在一行上包含主类属性,然后是2个空行 所有依赖项都位于相对于jar的/lib文件夹中,因此清单中没有指定类路径 在zip文件程序中打开jar显示文件夹,其中包含文件,因此限定名反映在jar结构中。资本化也是正确的。 罐子结构: 清单文件: