Java可以编写能在WINDOWS下的exe程序吗?

Python012

Java可以编写能在WINDOWS下的exe程序吗?,第1张

java代码可以用fatjar工具打包成.jar后缀的文件,可以直接运行的。\x0d\x0a如果要打包成.exe格式,需要再使用ext4j或者其他工具在jar的基础上再次打包。\x0d\x0a不过java桌面程序是依赖jre的,所以,必须是要求使用电脑安装jre或者在使用\x0d\x0aext4j打包的时候将jre安装程序也打包了。

Windows桌面开发方面不是Java的主攻,Java程序要运行在安装了jdk环境的机器上,要是一定要转成exe文件,也不是不可以,但有点麻烦,而且文件比较大,因为会夹带着一个虚拟机 里面,不过Java完全可以写一个像记事本那样的小程序,我现在就帮你写一个让你看看用Java写的记事本是怎样的:

/**  * 简单记事本开发

 */

import java.awt.*

import javax.annotation.processing.Filer

import javax.swing.*

import java.awt.Event

import java.awt.event.*

import java.io.*

public class NotePad extends JFrame implements ActionListener {

JTextArea jta=null

JScrollPane jsp=null

JMenuBar jmb=null

JMenu jm1,jm2,jm3,jm4,jm5

JMenuItem jmi1,jmi2,jmi3

String str=""

String path=""

public static void main(String[] args) {

NotePad np=new NotePad()

}

public NotePad(){

String str=""

jta =new JTextArea()

jta.setFont(new Font("宋体", Font.BOLD,28))

jsp=new JScrollPane(jta)

jmb=new JMenuBar()

jm1=new JMenu("文件(o)")

jm2=new JMenu("编辑(E)")

jm3=new JMenu("格式(O)")

jm4=new JMenu("查看(V)")

jm5=new JMenu("帮助(H)")

jmi1=new JMenuItem("打开")

//jmi1.setMnemonic('o')

//添加快捷键

jmi1.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK))

jmi2=new JMenuItem("保存")

jmi3=new JMenuItem("退出")

jmi1.addActionListener(this)

jmi2.addActionListener(this)

jmi3.addActionListener(this)

jmb.add(jm1)

jmb.add(jm2)

jmb.add(jm3)

jmb.add(jm4)

jmb.add(jm5)

jm1.add(jmi1)

jm1.add(jmi2)

jm1.add(jmi3)

this.setJMenuBar(jmb)

this.add(jsp)

this.getContentPane().setVisible(true)

this.setTitle("新建文本文档")

this.setIconImage((new ImageIcon("D://photos//SNC02103.JPG")).getImage())

this.setBounds(150,100,800,600)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setVisible(true)

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==jmi1){

JFileChooser jfc=new JFileChooser("C:\\Users\\jie\\Desktop")

jfc.setDialogTitle("请选择您要打开的文件...")

jfc.showOpenDialog(null)

str=jfc.getSelectedFile().getName()

this.setTitle(str)

jfc.setVisible(true)

String filename=null

FileReader fr=null

BufferedReader br=null

try {

filename=jfc.getSelectedFile().getAbsolutePath()

fr=new FileReader(filename)

br=new BufferedReader(fr)

String s=""

String all=""

while((s=br.readLine())!=null){

all+=s+"\r\n"

}

jta.setText(all)

} catch (Exception e2) {

System.out.println("a")

e2.printStackTrace()

}finally{

try{

fr.close()

br.close()

}catch (Exception e3){

e3.printStackTrace()

}

}

}

else if(e.getSource()==jmi3){

System.exit(0)

}

}

public void temp(){

JFileChooser jfc2=new JFileChooser("C:\\Users\\jie\\Desktop")

jfc2.setDialogTitle("另存为...")

jfc2.showSaveDialog(null)

jfc2.setVisible(true)

path=jfc2.getSelectedFile().getAbsolutePath()

}

下面是具体步骤:

需要的工具,用了exe4j这个软件

exe4j是一个帮助你集成Java应用程序到Windows操作环境的java可执行文件生成工具

无论这些应用是用于服务器,还是图形用户界面(GUI)或命令行的应用程序

exe4j帮助你以一种安全的方式启动你的 java应用程序来显示本地启动画面

检测及发布合适的JRE和JDK以及进行启动时所发生的错误处理等

1、先把自己的程序发布成jar文件

这是eclipse自带的功能,右键工程包-->Export

然后选择Java-->JAR file,点击next

2、选择输出路径,next

3、取消勾选Export class files with compile errors

因为一般warnings可以忽视,而errors不行,点击next

4、选择main class,即带有main方法的类,finish即可

5、将jar文件转为exe文件

之前生成的jar文件,以下是创建的目录结构

6、这里如果第一次用不需要管,点击next

如果你使用完保存过输出配置,可以选open configuration

7、进入Project type,选择“JRA IN EXE” mode,点击next

出现Application info

上面的框填写程序名字,下面的框选择输出路径

8、Configure executable

GUI application-->勾选allow,下面框填写文件名字,icon file可以自己选择图标文件

如果限制只能同时打开一个程序,勾选allow only a single,其他基本默认

如果你的exe4j和jdk位数不一致,记得把advanced options里的32bit or 64bit勾选

否则生成不报错exe也无法正确运行

9、Java invocation,点Class path框右边的绿色加号

把自己生成的jar文件路径写进Archive(用到的外部jar包也要都添加进去)

然后下面main class from框选择含有main方法的类

10、Minimum和Maximum填写允许的最小和最大jdk版本号

Configure  search sequence选项,框里应该只保留Search Windows registry

没有的话右边绿色箭头添加,其他的删除后,绿色箭头添加Directory

11、找到我们开始的时候拷到文件夹里的jre,点击finish

12、然后桌面出现生成的exe文件