Я предполагаю, что Netbeans вызывает JVM из корневой папки вашего проекта.Цитирование части файла Javadoc :
По умолчанию классы в пакете java.io всегда разрешают относительные пути к текущему пользовательскому каталогу.Этот каталог называется системным свойством user.dir и обычно является каталогом, в котором была вызвана виртуальная машина Java.
Чтобы проверить относительное разрешение пути, вы можете попробовать:
System.out.println(System.getProperty("user.dir"));
System.out.println(new File("sal.html").getAbsolutePath());
Затем вы можете переместить файл туда, где его ищет java.Скорее всего, корневая папка вашего проекта .
Вы также можете рассмотреть возможность использования загрузчика классов для чтения файлов как ресурсов внутри пакетов, используя getClass().getResourceAsStream("sal.html");
.Это предпочтительный способ доступа к ресурсам, поскольку вам больше не нужно беспокоиться об абсолютных и относительных путях.Если ресурс находится в вашем classpath, вы можете получить к нему доступ.См. этот ответ для получения дополнительной информации.