классов My MainClass.java имеет основной метод, который содержит следующий код, чтобы прочитать файл ExcelВыполнение файла .jar, чтобы загрузить файл в
String xlsxFilename = args[0];
try (InputStream fis = MainClass.class.getClassLoader().getResourceAsStream(xlsxFilename);
Workbook workbook = WorkbookFactory.create(fis);) {
...
Этот класс содержится в файле баночки и помещается в папке с именем Lib и я выполнения это, используя сценарий оболочки
run.sh
#!/bin/sh
CP=lib/*:
java -cp "$CP" in.test.MainClass $1
Теперь я запустить команду на выполнение файла ш
sh run.sh Sample.xlsx
Но это бросает исключение,
Exception in thread "main" java.lang.NullPointerException
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:79)
Я предполагаю, что исключение происходит потому, что getResourceAsStream не загружается файл Excel, а объект диез является недействительным. Является ли текущий каталог невидимым для getResourceAsStream()? Как я могу прочитать файл xls внутри текущего каталога в моем MainClass.java?
Я думаю, что если вы хотите читать как ресурс, файл excel должен быть помещен в файл jar где-нибудь с квалифицированным пакетом. – Yazan
Является ли файл Excel в том же каталоге, из которого вы запускаете программу? Или в банке? Или в другом месте? – Gagravarr
Файл Excel находится в том же каталоге, в котором запускается скрипт. – Rohit