简体   繁体   English

为我的Java应用程序创建可执行jar文件

[英]creating executable jar file for my java application

public class createExcel {

public  void write() throws IOException, WriteException {

        WorkbookSettings wbSettings = new WorkbookSettings();
        wbSettings.setLocale(new Locale("en", "EN"));
        WritableWorkbook workbook1 =Workbook.createWorkbook(new File(file), wbSettings);
        workbook1.createSheet("Niru ", 0);
        WritableSheet excelSheet = workbook1.getSheet(0);
        createLabel(excelSheet);
        createContent(excelSheet,list);
        workbook1.write();
        workbook1.close();
    }


 public void createLabel(WritableSheet sheet)throws WriteException {

WritableFont times10pt = new WritableFont(WritableFont.createFont("D:\font\trebuct"),8);

// Define the cell format

        times = new WritableCellFormat(times10pt);
        // Lets automatically wrap the cells
        times.setWrap(false);
        WritableFont times10ptBoldUnderline = new WritableFont(
        WritableFont.createFont("D:\font\trebuct"), 9, WritableFont.BOLD, false,
        UnderlineStyle.NO_UNDERLINE);
        timesBoldUnderline = new WritableCellFormat(times10ptBoldUnderline);

        sheet.setColumnView(0,15);
                sheet.setColumnView(1,13);

        // Write a few headers
        addCaption(sheet, 0, 0, "Business Date");
        addCaption(sheet, 1, 0, "Dealer ID");


    }
        private void createContent(WritableSheet sheet, ArrayList list) throws WriteException,RowsExceededException {
                // Write a few number
        for (int i = 1; i < 11; i++) {
                    for(int j=0;j<11;j++){
            // First column
            addNumber(sheet, i, j,1);
            // Second column
            addNumber(sheet, 1, i, i * i);
                    }
        }
            }
private void addCaption(WritableSheet sheet, int column, int row, String s)     throws RowsExceededException, WriteException {

        Label label;
        label = new Label(column, row, s, timesBoldUnderline);
                sheet.addCell(label);
    }

    private void addNumber(WritableSheet sheet,  int row,int column,
            Integer integer) throws WriteException, RowsExceededException {
        Number number;
        number = new Number(column,row, integer, times);
        sheet.addCell(number);
    }


public static void main(String[] args) {

        JButton myButton0 = new JButton("Advice_Report");
        JButton myButton1 = new JButton("Position_Report");
        JPanel bottomPanel = new JPanel();   
        bottomPanel.add(myButton0);
        bottomPanel.add(myButton1);  
        myButton0.addActionListener(this);
        myButton1.addActionListener(this);  
        createExcel obj=new  createExcel();
        obj.setOutputFile("c;\\temp\\swings\\jack.xls");
        try{
        obj.write();
        }catch(Exception e){}
}

and so on. 等等。 it working fine. 它工作正常。 i have jxl.jar and ojdbc14.jar files(need this jar file for Excelsheet creation and DB connection )and createExcel.class(.class file) file. 我有jxl.jar和ojdbc14.jar文件(需要此jar文件用于Excelsheet创建和DB连接)和createExcel.class(.class文件)文件。 how to make this code as executable jar file. 如何使此代码作为可执行jar文件。

There are several ways: 有几种方法:

  1. Create a jar file and put your classes (without dependencies) there. 创建一个jar文件,并将您的类(没有依赖项)放在那里。 Use some tool (any IDE has it) to do this and specify class with main function. 使用某种工具(任何IDE都具有)来执行此操作,并使用main函数指定类。 You can also do it manually from command-line. 您也可以从命令行手动进行操作。 When user want to run it he should specify classpath and all dependencies should be in that classpath. 当用户要运行它时,他应该指定类路径,所有依赖项都应在该类路径中。

  2. Create the same jar and create .bat or .sh file in which set classpath and run your jar. 创建相同的jar并创建.bat或.sh文件,在其中设置classpath并运行您的jar。

  3. Create cross-platform installer with some special tool (but good tools aren't free). 使用一些特殊工具创建跨平台安装程序(但是好的工具不是免费的)。

You need to create a jar that contains your .class and a manifest file. 您需要创建一个包含.class和清单文件的jar。 I suggest you read http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html and post additional questions. 我建议您阅读http://java.sun.com/docs/books/tutorial/deployment/jar/manifestindex.html并发布其他问题。

You create a JAR-file by executing following command: 通过执行以下命令来创建JAR文件:

jar -cvfm excel.jar MANIFEST.MF *.class

The MANIFEST.MF-file should contain following line: MANIFEST.MF文件应包含以下行:

Main-Class: createExcel

If what you're looking for is creating a .jar file, then you can use the "jar" command line tool. 如果要查找的是创建.jar文件,则可以使用“ jar”命令行工具。 Here's its description and options/usage: 这是它的描述和选项/用法:

Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
Options:
    -c  create new archive
    -t  list table of contents for archive
    -x  extract named (or all) files from archive
    -u  update existing archive
    -v  generate verbose output on standard output
    -f  specify archive file name
    -m  include manifest information from specified manifest file
    -e  specify application entry point for stand-alone application
        bundled into an executable jar file
    -0  store only; use no ZIP compression
    -M  do not create a manifest file for the entries
    -i  generate index information for the specified jar files
    -C  change to the specified directory and include the following file
If any file is a directory then it is processed recursively.
The manifest file name, the archive file name and the entry point name are
specified in the same order as the 'm', 'f' and 'e' flags.

Example 1: to archive two class files into an archive called classes.jar:
       jar cvf classes.jar Foo.class Bar.class
Example 2: use an existing manifest file 'mymanifest' and archive all the
           files in the foo/ directory into 'classes.jar':
       jar cvfm classes.jar mymanifest -C foo/ .

I hope that helps. 希望对您有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM