2015-11-24 2 views
0

Я использую Eclipse IDE для программирования. После выполнения учебник по Apache POI:Jar Executable, что я делаю неправильно?

https://www.youtube.com/watch?v=RsrF2Ku7ad4

Я создал исполняемый банку через затмении и следующие шаги по следующей ссылке: http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-37.htm

  1. Из меню Файл в строке меню, выберите Экспорт ,

  2. Разверните узел Java и выберите Runnable JAR-файл. Нажмите "Далее.

  3. В окне «Runnable JAR export Wizard Runnable JAR File Specification» я выбираю конфигурацию запуска WriteExcel для создания запускаемого JAR.

  4. В поле «Место для экспорта» я поместил его в рабочее пространство Eclipse.

  5. Затем я выбрал пакет необходимых библиотек в сгенерированные файлы JAR.

Я тогда связал файлы JAR с платформой Java (TM) SE в двоичном формате. Однако, когда я дважды кликаю, он не создает файл excel, как это происходит при запуске программы в Eclipse. Запуск файла jar из строки comand не возвращает ошибку или не создает файл excel.

Очевидно, что я сделал что-то неправильно, любая помощь очень ценится.

редактировать: код используется такой же, как YouTube учебник:

import java.io.FileOutputStream; 
 
import java.io.IOException; 
 
import java.util.Date; 
 

 
import org.apache.poi.hssf.usermodel.HSSFCell; 
 
import org.apache.poi.hssf.usermodel.HSSFRow; 
 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
 
import org.apache.poi.ss.usermodel.CellStyle; 
 
import org.apache.poi.ss.usermodel.DataFormat; 
 

 
public class WriteExcel { 
 
\t public static void main(String[] args) throws IOException { 
 
\t \t HSSFWorkbook workbook = new HSSFWorkbook(); 
 
\t \t HSSFSheet sheet = workbook.createSheet("FirstExcelSheet"); 
 
\t \t HSSFRow row = sheet.createRow(0); 
 
\t \t HSSFCell cell = row.createCell(0); 
 
\t \t cell.setCellValue("1. Cell"); 
 
\t \t 
 
\t \t cell = row.createCell(1); 
 
\t \t DataFormat format = workbook.createDataFormat(); 
 
\t \t CellStyle dateStyle = workbook.createCellStyle(); 
 
\t \t dateStyle.setDataFormat(format.getFormat("dd.mm.yyyy")); 
 
\t \t cell.setCellStyle(dateStyle); 
 
\t \t cell.setCellValue(new Date()); 
 
\t \t 
 
\t \t row.createCell(2).setCellValue("3. Cell"); 
 
\t \t 
 
\t \t sheet.autoSizeColumn(1); 
 
\t \t 
 
\t \t workbook.write(new FileOutputStream("excel.xls")); 
 
\t \t workbook.close(); 
 
\t } 
 
}

+1

Может быть, вы используете укомплектовать другую версию Java от затмения в вашей ОС? –

+1

Я предполагаю, что ваша банка работает, но имеет некоторые проблемы с кодированием, или файл записывается на относительный путь, и вы не можете его найти. Попробуйте добавить простой 'System.out.println (« hello »)'. Вы должны увидеть «привет», если вы выполняете банку в командной строке. Затем убедитесь, что вы используете абсолютный путь для записи файла. – BetaRide

+0

@Sercan Ozdemir: Это вызовет сообщение об ошибке или трассировку стека в командной строке. – BetaRide

ответ

0

После небольшого кода исправления

из

workbook.write(new FileOutputStream("excel.xls")); 
workbook.close(); 

к

FileOutputStream fos = new FileOutputStream("excel.xls"); 
workbook.write(fos); 
fos.close(); 

и выполнение шагов, которые вы указали для создания файла Jar. Я получаю Jar файл следующего содержания (результат jar tf WriteExcel.jar)

META-INF/MANIFEST.MF 
org/ 
org/eclipse/ 
org/eclipse/jdt/ 
org/eclipse/jdt/internal/ 
org/eclipse/jdt/internal/jarinjarloader/ 
org/eclipse/jdt/internal/jarinjarloader/JIJConstants.class 
org/eclipse/jdt/internal/jarinjarloader/JarRsrcLoaderManifestInfo.class 
org/eclipse/jdt/internal/jarinjarloader/JarRsrcLoader.class 
org/eclipse/jdt/internal/jarinjarloader/RsrcURLConnection.class 
org/eclipse/jdt/internal/jarinjarloader/RsrcURLStreamHandler.class 
org/eclipse/jdt/internal/jarinjarloader/RsrcURLStreamHandlerFactory.class 
WriteExcel.class 
XLStoCSVConvert.class 
org/apache/ 
org/apache/poi/ 
org/apache/poi/ss/ 
org/apache/poi/ss/examples/ 
org/apache/poi/ss/examples/UpdateWorkBook.class 
org/apache/poi/ss/examples/ToCSVExcelFilenameFilter.class 
org/apache/poi/ss/examples/ToCSV.class 
org/apache/poi/ss/examples/CreateNewWorkBook.class 
poi-ooxml-3.10.1.jar 
poi-ooxml-schemas-3.10.1.jar 
xmlbeans-2.6.0.jar 
stax-api-1.0.1.jar 
dom4j-1.6.1.jar 
xml-apis-1.0.b2.jar 
poi-3.10.1.jar 
commons-codec-1.5.jar 

содержимого файла META-INF/MANIFEST.MF

Manifest-Version: 1.0 
Rsrc-Class-Path: ./ poi-ooxml-3.10.1.jar poi-ooxml-schemas-3.10.1.jar 
xmlbeans-2.6.0.jar stax-api-1.0.1.jar dom4j-1.6.1.jar xml-apis-1.0.b2 
.jar poi-3.10.1.jar commons-codec-1.5.jar 
Class-Path: . 
Rsrc-Main-Class: WriteExcel 
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 

Исполнительного флягу с java -jar WriteExcel.jar генерирует файл excel.xls.

редактировать запустить двойным щелчком

Если это не выполняется, когда вы делаете двойной щелчок на файле Jar в проводнике Windows основные причины могут быть

  • файл Jar был скомпилирован с более новой версией JDK, затем JRE, которая назначена для выполнения файлов Jar (проверьте с java -version на обоих компьютерах)

  • неправильное приложение было назначено для выполнения Jar-файла
    проверка в реестре значение ключа HKEY_CLASSES_ROOT\jarfile\shell\open\command он должен быть похож на "C:\Program Files\Java\jre1.8.0_66\bin\javaw.exe" -jar "%1" %* (путь зависит от установленной версии)

+0

Огромное спасибо, что сейчас работает с: java -jar WriteExcel.jar Однако двойной щелчок на файле jar все еще не работает. Есть ли что-то, что я делаю неправильно? Мне действительно нужно, чтобы это была ситуация с двойным щелчком, прежде чем программировать дальше. Im создание этого для друга, который никогда не запускал cmd. – Evulafro

+0

@Evulafro Взгляните в мой обновленный ответ для решения с двойным щелчком на файле Jar. – SubOptimal

+0

благодарю вас за вашу постоянную поддержку. Компиляция программы pc im совпадает с тем, который пытается ее открыть, поскольку im все еще просто проверяет ее. Что касается второго варианта, то реестр верен: http://i.imgur.com/E7kHZqT.png – Evulafro

Смежные вопросы