首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我做错什么了?

问我做错什么了?
EN

Stack Overflow用户
提问于 2015-11-24 06:39:20
回答 1查看 1K关注 0票数 0

我正在使用Eclipse进行编程。在学习了有关Apache的教程之后:

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

我通过eclipse创建了一个可执行的jar,并通过下面的链接创建了以下步骤:http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftasks-37.htm

  1. 从菜单栏的“文件”菜单中,选择“导出”。
  2. 展开Java节点并选择Runnable文件。单击Next。
  3. 在Runnable导出向导Runnable文件规范页面中,我选择用于创建runnable的WriteExcel启动配置。
  4. 在导出目标字段中,我将其放置在Eclipse工作区中。
  5. 然后,我将必需的包库选择到生成的JAR文件中。

然后,我将JAR文件与windows中的Java(TM)平台SE二进制文件关联起来。但是,当我双击时,它不会像在Eclipse中运行程序时那样创建excel文件。从comand行运行jar文件也不会返回错误或创建excel文件。

显然,我做错了什么,任何帮助都是非常感谢的。

编辑:使用的代码与youtube教程相同:

​

代码语言:javascript
复制
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 {
	public static void main(String[] args) throws IOException {
		HSSFWorkbook workbook = new HSSFWorkbook();
		HSSFSheet sheet = workbook.createSheet("FirstExcelSheet");
		HSSFRow row = sheet.createRow(0);
		HSSFCell cell = row.createCell(0);
		cell.setCellValue("1. Cell");
		
		cell = row.createCell(1);
		DataFormat format = workbook.createDataFormat();
		CellStyle dateStyle = workbook.createCellStyle();
		dateStyle.setDataFormat(format.getFormat("dd.mm.yyyy"));
		cell.setCellStyle(dateStyle);
		cell.setCellValue(new Date());
		
		row.createCell(2).setCellValue("3. Cell");
		
		sheet.autoSizeColumn(1);
		
		workbook.write(new FileOutputStream("excel.xls"));
		workbook.close();
	}
}

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-24 11:31:08

在一个小代码修复之后

从…

代码语言:javascript
复制
workbook.write(new FileOutputStream("excel.xls"));
workbook.close();

至

代码语言:javascript
复制
FileOutputStream fos = new FileOutputStream("excel.xls");
workbook.write(fos);
fos.close();

并执行您提到的生成Jar文件的步骤。我得到一个包含以下内容的Jar文件(jar tf WriteExcel.jar的结果)

代码语言:javascript
复制
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的内容

代码语言:javascript
复制
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执行Jar将生成文件excel.xls。

编辑运行双击

如果在Windows资源管理器中双击Jar文件时没有执行,主要原因可能是

  • Jar文件是用一个更新的JDK版本编译的,然后是JRE,它被分配用于执行Jar文件(在两台PC上都使用java -version )。
  • 分配了一个错误的应用程序来执行Jar文件 在注册表中签入键HKEY_CLASSES_ROOT\jarfile\shell\open\command的值,它必须类似于"C:\Program Files\Java\jre1.8.0_66\bin\javaw.exe" -jar "%1" %* (路径取决于已安装的版本)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33887003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档