Windows桌面开发方面不是Java的主攻,Java程序要运行在安装了jdk环境的机器上,要是一定要转成exe文件,也不是不可以,但有点麻烦,而且文件比较大,因为会夹带着一个虚拟机 里面,不过Java完全可以写一个像记事本那样的小程序,我现在就帮你写一个让你看看用Java写的记事本是怎样的:
/ 简单记事本开发/
import javaawt;
import javaxannotationprocessingFiler;
import javaxswing;
import javaawtEvent;
import javaawtevent;
import javaio;
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();
jtasetFont(new Font("宋体", FontBOLD,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("打开");
//jmi1setMnemonic('o');
//添加快捷键
jmi1setAccelerator(KeyStrokegetKeyStroke('O',javaawtEventCTRL_MASK));
jmi2=new JMenuItem("保存");
jmi3=new JMenuItem("退出");
jmi1addActionListener(this);
jmi2addActionListener(this);
jmi3addActionListener(this);
jmbadd(jm1);
jmbadd(jm2);
jmbadd(jm3);
jmbadd(jm4);
jmbadd(jm5);
jm1add(jmi1);
jm1add(jmi2);
jm1add(jmi3);
thissetJMenuBar(jmb);
thisadd(jsp);
thisgetContentPane()setVisible(true);
thissetTitle("新建文本文档");
thissetIconImage((new ImageIcon("D://photos//SNC02103JPG"))getImage());
thissetBounds(150,100,800,600);
thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
thissetVisible(true);
}
public void actionPerformed(ActionEvent e) {
if(egetSource()==jmi1){
JFileChooser jfc=new JFileChooser("C:\\Users\\jie\\Desktop");
jfcsetDialogTitle("请选择您要打开的文件");
jfcshowOpenDialog(null);
str=jfcgetSelectedFile()getName();
thissetTitle(str);
jfcsetVisible(true);
String filename=null;
FileReader fr=null;
BufferedReader br=null;
try {
filename=jfcgetSelectedFile()getAbsolutePath();
fr=new FileReader(filename);
br=new BufferedReader(fr);
String s="";
String all="";
while((s=brreadLine())!=null){
all+=s+"\r\n";
}
jtasetText(all);
} catch (Exception e2) {
Systemoutprintln("a");
e2printStackTrace();
}finally{
try{
frclose();
brclose();
}catch (Exception e3){
e3printStackTrace();
}
}
}
else if(egetSource()==jmi3){
Systemexit(0);
}
}
public void temp(){
JFileChooser jfc2=new JFileChooser("C:\\Users\\jie\\Desktop");
jfc2setDialogTitle("另存为");
jfc2showSaveDialog(null);
jfc2setVisible(true);
path=jfc2getSelectedFile()getAbsolutePath();
}
1内部使用 C 的 longjmp 机制让出一个协程。 因此,如果一个 C 函数 foo 调用了一个 API 函数, 而这个 API 函数让出了(直接或间接调用了让出函数)。 由于 longjmp 会移除 C 栈的栈帧, Lua 就无法返回到 foo 里了。
2为了回避这类问题, 碰到 API 调用中调用让出时,除了那些抛出错误的 API 外,还提供了三个函数: lua_yieldk, lua_callk,和 lua_pcallk 。 它们在让出发生时,可以从传入的 延续函数 (名为 k 的参数)继续运行。
3我们需要预设一些术语来解释延续点。 对于从 Lua 中调用的 C 函数,我们称之为 原函数。 从这个原函数中调用的上面所述的三个 C API 函数我们称之为 被调函数。 被调函数可以使当前线程让出。 (让出发生在被调函数是 lua_yieldk, 或传入 lua_callk 或 lua_pcallk 的函数调用了让出时。)
4假设正在运行的线程在执行被调函数时让出。 当再次延续这条线程,它希望继续被调函数的运行。 然而,被调函数不可能返回到原函数中。 这是因为之前的让出 *** 作破坏了 C 栈的栈帧。 作为替代品,Lua 调用那个作为被调函数参数给出的 延续函数 。 正如其名,延续函数将延续原函数的任务。
5注意这里那个额外的显式的对延续函数的调用:Lua 仅在需要时,这可能是由错误导致的也可能是发生了让出而需要继续运行,才会调用延续函数。 如果没有发生过任何让出,调用的函数正常返回, 那么 lua_pcallk (以及 lua_callk)也会正常返回。 (当然,这个例子中你也可以不在之后调用延续函数, 而是在原函数的调用后直接写上需要做的工作。)
6Lua 会把延续函数看作原函数。 延续函数将接收到和原函数相同的 Lua 栈,其接收到的 lua 状态也和 被调函数若返回后应该有的状态一致。 (例如, lua_callk 调用之后, 栈中之前压入的函数和调用参数都被调用产生的返回值所替代。) 这时也有相同的上值。 等到它返回的时候,Lua 会将其看待成原函数的返回去 *** 作。
7我们需要预设一些术语来解释延续点。 对于从 Lua 中调用的 C 函数,我们称之为 原函数。 从这个原函数中调用的上面所述的三个 C API 函数我们称之为 被调函数。 被调函数可以使当前线程让出。 (让出发生在被调函数是 lua_yieldk, 或传入 lua_callk 或 lua_pcallk 的函数调用了让出时。)
8假设正在运行的线程在执行被调函数时让出。 当再次延续这条线程,它希望继续被调函数的运行。 然而,被调函数不可能返回到原函数中。 这是因为之前的让出 *** 作破坏了 C 栈的栈帧。 作为替代品,Lua 调用那个作为被调函数参数给出的 延续函数 。 正如其名,延续函数将延续原函数的任务。
希望能帮到你,谢谢!
为了在您的机器上配置起一个Java开发环境——您将使用一个“开发环境”来“开发”(编写)程序——您需要完成以下这些步骤:
1下载一个包含Java开发环境(编译器和其他工具)的大文件。点击“下载J2SE SDK”链接下载SDK(软件开发工具包)软件。网页会显示一个许可协议。点击“接受”。选择您的 *** 作系统,然后将文件保存到下载目录中。这是一个巨大的文件,用电话调制解调器下载需要好几个小时。接下来的两个文件也很大。
2下载一个包含Java文档的大文件。选择 *** 作系统后点击SDK141文档的链接。
3如果您的机器上还没有安装WinZip(或可执行相同功能的程序),那么您需要下载一个包含WinZip的大文件并安装之。如果您的机器上没有安装某个的版本的WinZip或其他解压缩软件,下载WinZip的试用版。运行EXE文件安装。很快我们将使用它来安装文档。
4安装Java开发环境。运行第一步下载的j2sdk-1_4_1-exe文件。他将自动解压并安装开发工具包。
5安装文档。阅读安装说明文档。它会要求您将文档文件移至刚才开发工具包的安装目录。将文档解压缩,文件就会被安排到适当的位置。
6调整环境变量。按照此页的要求,您需要改变路径变量。最简单的办法是打开一个MS-DOS窗口键入PATH看看当前的路径变量是什么,然后用记事本打开autoexecbat按要求修改PATH环境变量。
7全面测试。现在您应该可以打开另一个MS-DOS窗口并键入javac了。
java一般用来编写如下的程序,如下:
使用java语言为基础,综合jsp、JavaScript、html、jqury等技术开发网站。
使用java为开发语言,编写手机应用程序,也就是adroid app。
使用java为底层语言,开发嵌入式程序。
1、嵌入式领域
Java在嵌入式领域也有很大的应用。你只需要130KB就能够使用Java技术(在一块小的芯片或者传感器上),这显示了这个平台是多么的可靠。Java最初是为了嵌入式设备而设计的。
事实上,这也是Java最初的一项“立即编写,随处运行”主旨的一部分。
2、大数据技术
Hadoop和其他的大数据技术也在不同程度使用着Java,例如Apache的基于Java的Hbase,Aumulo(开源),以及。但是Java并没有占领整个领域,还有其他的大数据技术例如MongoDB就是使用C编写的如果Hadoopor和逐渐发展,那么Java就能有潜力在大数据技术领域上得到更大的发展空间。
3、软件工具
很多有用的软件和开发工具都是运用Java编写和开发的,例如Ecilpse,和NetbansIDE。我认为这些都是最经常使用的用Java编写的桌面应用程序。就如上面所说,Swing曾经在图形用户界面的客户端开发非常流行,它们大多数应用在金融服务领域以及投资银行。虽然现在JavaFx正在逐渐地流行起来,但仍然无法替代Swing,而且C#已经在大部分金融领域中代替了Swing。
4、网站应用
Java同样也在电子商务和网站开发上有着广泛的运用。你可以运用很多RESTfull架构,这些架构是用SpringMVC,Struts20和类似的框架开发出来的。甚至简单的Servlet,JSP和Struts在各种政府项目也是备受欢迎,许多政府,医疗,保险,教育,国防和其他部门的网站都是建立在Java之上的。
5、在金融服务行业的服务器应用
Java在金融服务业有着很大应用。很多的全球性投资银行例如(高盛投资公司),Citigroup(花旗集团),Barclays(巴克莱银行),(英国渣打银行)和一些其他银行都用Java编写前台和后台的电子交易系统,结算、信息确认系统,数据处理项目和以及其他的项目。
Java被运用于编写服务端应用,但大多数没有前端,都是从一个服务端(上一级)接受数据,处理数据后发向其他的处理系统(下一级)。JavaSwing由于能开发出图形用户界面的客户端供交易者使用而备受欢迎,但是现在C#正在快速地取代Swing的市场,这让Swing倍有压力。
6、交易系统
第三方交易系统,金融服务行业的一大部分,同样也是使用Java编写的。例如像Murex这种受欢迎的交易系统,运用于与许多的银行前端链接,同样也是用Java编写的。
7、J2MEApps
虽然IOS和Android的到来几乎扼杀了J2ME的市场,但是仍然有很多的低端诺基亚和三星手机在使用着J2ME。曾经有段时间大部分的游戏,手机应用都是利用MIDP和CLDC,或者J2ME部分平台编写的,以适用于Android系统。J2ME依然在蓝光、磁卡、机顶盒等产品中流行着。app之所以如此流行是因为对于所有的诺基亚手机,app仍然适用于J2ME。
8、高频交易领域
Java平台已经大大提高了性能特点和JITS,并且Java也拥有像C级别的传输性能。因此,Java也流行于编写高并发系统。虽然Java的传输性能不比C,但你可以不用考虑Java的安全性,可移植性和可维护性等问题(Java内部已经实现好了),而且Java有着更快的运行速度。安全性等问题会使一个没有经验的C程序员编写的应用程序变得更加缓慢和不可靠。
9、科学应用
现在Java经常是科学应用的默认选择,包括了自然语言处理。这最主要的原因是因为Java比起C或者其他语言有更加的安全,可移植,可维护,而且Java有着更好的高级并发工具。
10、安卓Apps
如果你想知道Java应用在哪里,你离答案并不远。打开你的安卓手机或者任何的App,它们完全是用有着谷歌AndroidAPI的Java编程语言编写的,这个API和JDK非常相似。前几年安卓刚开始起步而到今日已经很多Java程序员是安卓App的开发者。
以上就是关于java可以开发.exe程序吗比如 windows记事本程序全部的内容,包括:java可以开发.exe程序吗比如 windows记事本程序、用Java编写一个程序,要求如下:、怎么用java编写一个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)