Я использую eclipse для программирования на Java. В последний день я создал программу на Java и поместил папку /res в корневой каталог проекта. Когда я тестировал программу на eclipse, она работала отлично, но когда я создал исполняемый файл .jar и попытался запустить, получил исключение:
java.io.FileNotFoundException: res/music.wav (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
at java.base/java.io.FileInputStream.(FileInputStream.java:152)
at java.desktop/com.sun.media.sound.SunFileReader.getAudioInputStream(SunFileReader.java:117)
at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1060)
at main.MusicPlayer.run(MusicPlayer.java:21)
at java.base/java.lang.Thread.run(Thread.java:1583)
Он выдает исключение FileNotFoundException, но только когда я запускаю его как файл .jar.
Я видел, что файл jar включает только папку src/, поэтому его нет работает.
Я говорю кому-то, и он сказал мне, что папка res/ должна находиться внутри корневого каталога.
Может кто-нибудь сказать мне, как мне создать файл .jar?
Где мне это сделать? поместить папку res/?
А еще я использую этот код:
package main;
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
public class MusicPlayer implements Runnable {
private float volume = 0.3f;
@Override
public void run() {
try {
// InputStream is = getClass().getResourceAsStream("/res/music.wav");
// BufferedInputStream bis = new BufferedInputStream(is);
File bis = new File("res/music.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(bis);
AudioFormat format = ais.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
line.open(format);
line.start();
int nBytesRead = 0;
byte[] abData = new byte[128000];
while (nBytesRead != -1) {
nBytesRead = ais.read(abData, 0, abData.length);
if (nBytesRead >= 0) {
for (int i = 0; i < nBytesRead; i++) {
// Scale the sample by the volume factor
abData = (byte) (abData * volume);
}
line.write(abData, 0, nBytesRead);
}
}
line.drain();
line.close();
ais.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
А это файл Main.java:
package main;
public class Main {
public Main () {
Thread musicThread = new Thread(new MusicPlayer());
musicThread.start();
}
public static void main (String[] args) {
new Main();
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... e-does-not
Jar File выдает FileNotFoundException, но eclipse - нет ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1736441069
Anonymous
Я использую eclipse для программирования на Java. В последний день я создал программу на Java и поместил папку /res в корневой каталог проекта. Когда я тестировал программу на eclipse, она работала отлично, но когда я создал исполняемый файл .jar и попытался запустить, получил исключение:
java.io.FileNotFoundException: res/music.wav (No such file or directory)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
at java.base/java.io.FileInputStream.(FileInputStream.java:152)
at java.desktop/com.sun.media.sound.SunFileReader.getAudioInputStream(SunFileReader.java:117)
at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1060)
at main.MusicPlayer.run(MusicPlayer.java:21)
at java.base/java.lang.Thread.run(Thread.java:1583)
Он выдает исключение FileNotFoundException, но только когда я запускаю его как файл .jar.
Я видел, что файл jar включает только папку src/, поэтому его нет работает.
Я говорю кому-то, и он сказал мне, что папка res/ должна находиться внутри корневого каталога.
Может кто-нибудь сказать мне, как мне создать файл .jar?
Где мне это сделать? поместить папку res/?
А еще я использую этот код:
package main;
import java.io.File;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.SourceDataLine;
public class MusicPlayer implements Runnable {
private float volume = 0.3f;
@Override
public void run() {
try {
// InputStream is = getClass().getResourceAsStream("/res/music.wav");
// BufferedInputStream bis = new BufferedInputStream(is);
File bis = new File("res/music.wav");
AudioInputStream ais = AudioSystem.getAudioInputStream(bis);
AudioFormat format = ais.getFormat();
DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
SourceDataLine line = (SourceDataLine) AudioSystem.getLine(info);
line.open(format);
line.start();
int nBytesRead = 0;
byte[] abData = new byte[128000];
while (nBytesRead != -1) {
nBytesRead = ais.read(abData, 0, abData.length);
if (nBytesRead >= 0) {
for (int i = 0; i < nBytesRead; i++) {
// Scale the sample by the volume factor
abData[i] = (byte) (abData[i] * volume);
}
line.write(abData, 0, nBytesRead);
}
}
line.drain();
line.close();
ais.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
А это файл Main.java:
package main;
public class Main {
public Main () {
Thread musicThread = new Thread(new MusicPlayer());
musicThread.start();
}
public static void main (String[] args) {
new Main();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79343233/jar-file-throws-filenotfoundexception-but-eclipse-does-not[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия