Шансы - это путь, который вы указываете файлу, или разрешения не совпадают. Поместите File ctor в блок try, поймайте исключение и выясните, что это такое.
Это должно выглядеть примерно так:
try {
File file = new File(i);
img = ImageIO.read(file);
} catch (Exception ex) {
// You probably want to open the java console, or use a logger
// as a JNLP may send stderr someplace weird.
Systemm.err.println("Exception was: ", ex.toString());
}
Ваш код ничего не делает, за исключением.
Возможно, вы захотите взглянуть на поток исключений в руководстве по Java.
обновление
Смотрите мои комментарии. Я просто что-то попробовал и подтвердил, о чем я думал - код с try {}
и без catch
или finally
даже не скомпилируется. если это действительно код, с которым вы работаете, возможно, вы загружали старый файл класса; этот не скомпилирован.
$ cat Foo.java
public class Foo {
public void tryit() {
try {
File f = new File(null);
}
}
}
$ javac Foo.java
Foo.java:3: 'try' without 'catch' or 'finally'
try {
^
1 error
$