所有回答列表(5)
用以下命令打包独立程序(在控制台运行)
javapackager -deploy -appclass Test -native image -srcdir archive -outdir deploy -outfile Test -Bruntime=$JAVA_HOME/jre
参数说明
-appclass Test
还是指定应用程序主类
-srcdir archive
指定源目录,这里指定的是我们刚才打包存放 jar 文件的目录
-outdir deploy
指定输出目录,名字随你喜好
-outfile Test
指定输出文件名,名字随你喜好
-native image
指定输出的本地程序类型,image 的话只生成一个启动器(exe),也有别的选项可以生成安装程序等等(需要第三方工具)
-Bruntime=$JAVA_HOME/jre(如果不加这个参数会自动选择本地的jdk)
指定打包出来的独立程序使用的 jre 的位置,这里用的是本人的 jdk 自带的 jre,如果你用的是 cmd 的话写成 %JAVA_HOME%\jre
也可以指定别的 jre,但是要小心保证 javapackager 所在的 jdk 和所使用的 jre 的位数相同(即都是32位或都是64位,最好版本也相同,最最好就直接用 jdk 自带的 jre)
这样打包就完成了,可以自己运行以下试试
第一步:将浏览器嵌入到java swing中,需要的三个包如下:DJNativeSwing.jar DJNativeSwing-SWT.jar swt-3.6M3-win32-win32-x86
代码如下:
package com.langtop.webBrowser;
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.NSOption;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class CRMWebBrowser extends JPanel {
public CRMWebBrowser() {
super(new BorderLayout());
JPanel webBrowserPanel = new JPanel(new BorderLayout());
JWebBrowser webBrowser = new JWebBrowser(new NSOption[0]);
webBrowser.navigate("http://baidu.com");
webBrowserPanel.add(webBrowser, "Center");
add(webBrowserPanel, "Center");
webBrowser.setMenuBarVisible(false);
webBrowser.setLocationBarVisible(false);
webBrowser.setBarsVisible(false);
webBrowser.setOpaque(false);
webBrowser.setStatusBarVisible(false);
JPanel buttonPanel = new JPanel(new FlowLayout(1, 4, 4));
add(buttonPanel, "South");
}
public static void main(String[] args) {
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame("百度PC客户端测试");
frame.setDefaultCloseOperation(3);
frame.setIconImage(Toolkit.getDefaultToolkit().createImage(
"/icon.png"));
frame.getContentPane().add(new CRMWebBrowser(), "Center");
frame.setExtendedState(6);
frame.setDefaultCloseOperation(3);
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
});
NativeInterface.runEventPump();
}
}
第二步:打成jar包
用myeclipse 提供的打包工具,它不会将第三方用的包打包进去,所以下载 myeclipse插件 fat jar ,这个插件可以将第三方包打进你要打的包里面。
第三步:生成可exe可执行文件
下载exe4j工具将jar包生成exe可执行文件,但是这样不会将java环境打包进去,这样生成的exe文件是无法在没有java环境的机器上运行的,所以将jdk目录下的jre目录全部cope出来发在和jar文件的同目录,这样再生成exe文件,java环境也就有了,将这个文件夹全部copy给别人就能用了,但是这样每次都要去copy一个文件夹,很麻烦,也很不专业。
第四步:生成exe可执行文件,生成安装文件,这样别人拿到这个exe安装文件后,直接点击安装,jre目录也就直接生成在安装目录了。
下载Inno Setup Compiler 这个工具,操作上一步生成的exe文件,一步一步将生成可安装的exe文件。
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?
相关问答
最近浏览





