如何从Java项目创建可安装文件?

时间:2013-09-26 11:01:15

标签: java eclipse debian debian-based

我有一个Java项目,我在Eclipse中成功执行了该项目。现在我如何做一个可安装的文件。

我正在使用Linux mint,所以请根据此操作系统说明。

我在DEBIAN尝试但是我没有成功。

最后我需要知道我在preinst,postinst,prerm和postrm文件中编写/编码的内容。

3 个答案:

答案 0 :(得分:1)

Debian文件创建

步骤1:使用您所需的项目名称创建一个文件夹。 [例如。项目名称]

步骤2:按如下方式创建一个空文件夹。

  1. DEBIAN [必须是帽子]
  2. USR
  3. 步骤3:在DEBIAN文件夹中创建一个没有任何扩展名的“控制”文件,并将以下数据放入其中。

    Package: projectname
    Version: 2.6-r1473-1
    Section: editors
    Priority: optional
    Architecture: all
    Depends: sun-java5-jre | sun-java6-jre | openjdk-6-jre | openjdk-7-jre
    Conflicts: projectname-praha
    Replaces: projectname-praha
    Installed-Size: 15684
    Maintainer: projectname Developers <contact@projectname.biz>
    Homepage: http://projectname.biz/
    Description: Free cross-platform project scheduling and management tool. Gantt chart, resource load chart, MS Project import/export.
     projectname is a free and easy to use Gantt chart based project scheduling and management tool.
     The full installation includes:
     .
     * Task hierarchy and dependencies
     * Gantt chart
     * Resource load chart
     * Generation of PERT chart
     * WebDAV based groupwork
     * Export to PDF and HTML
     * Microsoft Project import and export
    

    最后保存并退出。

    步骤4:在DEBIAN文件夹中创建一个没有任何扩展名的“postinst”文件并将其放入

    #!/bin/sh 
    set-e
    
    if [ "$1" = "configure" ]; then 
        if [ -e /usr/bin/projectname ]; then rm -f usr/bin/projectname; fi 
    
        ln -s /usr/bin/projectname/projectname /usr/bin/projectname 
    
        if [ -x "$(which update-menus 2>/dev/null)" ]; then update-menus; fi 
        if [ -x "$(which update-mime 2>/dev/null)" ]; then update-mime; fi 
    fi
    

    此处,在第6行中,“/ usr / bin / projectname”是用户定义的,您可以将自己定义为需要安装项目的地方。

    步骤5:在DEBIAN文件夹中创建一个没有任何扩展名的'postrm'文件并将其放入

    #!/bin/sh
    set-e
        if [ -e /usr/bin/projectname ]; then rm -f usr/bin/projectname; fi
    
        if [ -x "$(which update-mime >/dev/null 2>&1)" ]; then update-mime; fi
    
        if [ -x "$(which update-menus 2>/dev/null)" ]; then update-menus; fi
    
    fi
    

    步骤6:在'usr'文件夹中创建一个文件夹'lib'和'share'文件夹

    • 在'lib'文件夹中创建'mime'文件夹。
    • 在'mime'文件夹中创建'packages'文件夹。
    • 在'packages'中创建一个文档作为projectname,没有任何扩展,并将以下数据放入其中。

      application/projectname+xml; projectname '%s'; description="projectname file"; test=test -n "$DISPLAY"; nametemplate=%s.gan 
      

    步骤7:现在回到'share'文件夹,在应用程序名称,doc,projectname,mime,pixmaps中创建五个文件夹。现在

    • 在'applications'文件夹中输入'projectname.desktop'文件。
    • 在'doc'文件夹中创建'projectname'文件夹,并从项目中输入AUTHORS,README,LICENSE文件。

    现在回到'share'文件夹并在'projectname'文件夹中插入项目中的[plugins文件夹,eclipsito.jar,projectname,HouseBuildingSample.gan(这里,projectname是runnable file。)]文件。这些插件文件夹,eclipsito.jar,projectname,HouseBuildingSample.gan是在完成项目执行后创建的。

    现在回到'share'文件夹并在'mime'文件夹中,将文件夹创建为'packages',并在此文件夹中放置项目中的'projectname.xml'文件。 现在回到'share'文件夹并在'pixmaps'文件夹中放入项目中的'projectname.png'文件。而不是扩展.png可以使用.jpeg或jpg。

    步骤8:现在打开Terninal并打开项目所在的文件夹/路径(例如cd Desktop):

    write sudo dpkg -b <projectname>
    

    将创建Debian文件。您可以使用该文件来安装它。

    使用Debian软件包时出错:

    可能有机会得到这样的错误

      

    控制目录有错误权限555(必须是&gt; = 0755&lt; = 0775)

    要解决此类错误,请提供此命令

    chmod 0755 <path of the project>
    

    例如:chmod 0755 /home/vrmg15/Desktop/projectname/DEBIAN

答案 1 :(得分:0)

如果您真的需要安装程序,我建议您自己编写,但我认为,您的意思是将其作为可执行文件导出。

对于第二个选项,请在eclipse中执行以下操作: 文件 - &gt;导出...-&gt; Java / Runnable Jar文件

您的启动配置将包含包含主方法的类的名称。作为文件名,你应该使用yourapplication.jar。

单击完成后,您可以通过双击它或在命令行上使用java -jar yourapplication.jar来执行该文件。

编辑:您需要导出的jar文件才能创建debian软件包。我对debian软件包没有任何经验,但我确实这必须在eclipse之外完成。

如果要使用单个终端命令启动程序,可以将以下脚本放在/ usr / bin

#!/bin/sh
java -jar /path/to/your/jarfile

并使其可执行(chmod +x /usr/bin/yourapp

答案 2 :(得分:-1)

您必须制作一个包含少量Java文件的jar文件