孙医生:腰不舒服怎么回事,与泌尿系统有关吗,有结石应该很痛

您所在的位置: &
四、第一个Java程序的编译和运行
四、第一个Java程序的编译和运行
杨佩理/周洪斌
机械工业出版社
《Java编程基础教程》第一篇Java语言入门篇,在该篇中,安排了Java语言快速入门、Java中的数据和运算、Java结构化编程三讲。本节为大家介绍第一个Java程序的编译和运行。
四、第一个Java程序的编译和运行
Java程序有两种常用的应用形式:
应用程序(Application)
嵌入在HTML文件中的小程序(Applet)
本书大部分篇幅讨论的是Java应用程序的设计,Java应用程序是可以独立运行的程序,而Java Applet则不可独立运行,需要嵌入到网页文件中运行,Applet可使网页产生生动活泼的画面,使网页由静态转变为动态。
1. 第一个Java程序
下面就给出第一个Java程序,我们可以在记事本等编辑软件中编辑Java程序,编辑完毕保存成文本文件,但扩展名不能是记事本默认的“.txt”,而应是“.java”。如果给这个程序起名为Hello,那这个程序的全名则是Hello.java。
Hello.java的内容在记事本中的显示如图1-5所示。
图1-5&& 第一个Java程序
2. 编译和运行
如图1-2所示,一个Java程序编写完后先要编译才能解释运行。编译无错将生成结构中立的字节码文件。由表1-3得知javac.exe即为Java编译器,所以可以用命令javac Hello.java对以上的Hello.java文件进行编译,编译后生成字节码文件名为程序首行class后的类名,扩展名为“.class”,本例生成的字节码文件为HelloWorld.class。
之后用Java解释器java.exe对字节码文件解释即得结果。编译和运行过程如图1-6所示。
图1-6 Java程序的编译和运行
3. JCreator集成软件简介
JCreator是一款适合于Java语言编程初学者的集成软件,对JCreator进行基本设置后,即可直接完成程序编写、编译和运行Java程序的全过程。
JCreator操作界面简洁,提供的基本功能也较丰富,有代码缩进、自动类库方法提示、关键字高亮显示、无限撤销等。J2SE+JCreator是Java初学者较好的选择,这可让学习者把更多精力放在Java语言本身,而非工具的使用上。JCreator操作界面如图1-7所示。
(点击查看大图)图1-7&& JCreator操作界面
通常应先安装J2SE,后安装JCreator,这样JCreator会自动辨识J2SE文件夹,“JDK配置文件”选项下会自动配置classpath。否则需要通过“配置”→“选项”弹出“选项”对话框,后对“JDK配置文件”一栏进行设置。
如图1-8所示的“选项”对话框中,JDK配置文件已设定。假如尚未设定,或单击右侧的“删除”按钮将已有的设定内容删除,则需要重新设定。这可通过右上方的“新建”按钮完成。
当单击“新建”按钮后,会弹出如图1-9所示的“选择路径”对话框,选择已安装在机器里的JDK目录,后单击下方的“确定”按钮,即弹出如图1-10所示的“JDK配置文件”对话框,利用其上的“添加”按钮可继续加入扩展的类路径。
(点击查看大图)图1-8&& JCreator“选项”对话框
图1-9 “选择路径”对话框
图1-10 “JDK配置文件”对话框
JCreator中有些快捷键是十分好用的,它们可方便程序的编辑,成批语句行移动位置,可缩进程序中的语句,这样既符合了标准的书写格式,又让程序清晰可读;可以给语句行加上注释,在调试程序的时候十分好用。程序出错了,错在哪里需要排查才知,注释就可起到排查时的辅助作用。
JCreator常用的快捷键见表1-4。
表1-4&& JCreator中常用的快捷键
4. Java程序的基本结构
下面给出第二个Java程序。[HelloDate.java] &&&&&&&&&&&import&java.util.*; &&&&&&&&&&&public&class&HelloDate{ &&&&&&&&&&&&&&&public&static&void&main(String[]&args){ &&&&&&&&&&&&&&&System.out.print("Hello,&It&is"); &&&&&&&&&&&&&&&System.out.println(new&Date()); &&&&&&&&&&&} &&&&&&&&}&
程序的运行结果是:Hello,It&is&Tue&May&05&20:05:35&CST&2009&
通过阅读以上两个程序,我们对Java程序建立了初步的认识。这个程序命名为HelloDate.java是随意的吗?否!那第一个程序怎么没命名成HelloWorld.java呢?原因就在“public”上。请记住“public class……”这样定义的类,必须将class后的那个类名作为文件名。
Java程序的基本组成有如下两部分:
导入包import&包名;&
类定义class&类名{ &&&&类体 &}&
下面作进一步的说明:
1)可执行的Java程序,必有一个类中含main方法。
2)main方法有固定格式,如public static void main(String[] args),其中只有参数名args是可自定的。main前的每个修饰词都不可缺,顺序亦不可错。
3)方法和类都需用成对的花括号界定。
4)Java程序块中语法类同C++,每条语句用分号结束。
5)Java程序对大小写敏感,class后的类名由大写字母开头,变量名、对象名由小写字母开头,常用修饰词与方法名以小写字母开头。
本讲扼要介绍了Java语言的发展历程和Java程序工作原理。Java是20世纪90年代由Sun公司开发的面向对象的程序设计语言,Write once, Run anywhere的特点和JVM的工作模式是相契合的,它们给Java注入了强大的生命力。通过两个程序从编辑到运行的过程,揭示了Java程序编译和解释的运行机制,并对Java程序的基本结构建立了初步的认识。
本讲只是一个Java语言基础的导引,要编写出自己的Java程序,必须学习Java中的数据类型和运算,学习程序的流程控制。
【责任编辑: TEL:(010)】&&&&&&
关于&&的更多文章
本书共12章,内容主要包含两大部分。第一部分是Java语法相关内容
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
讲师: 26人学习过讲师: 14人学习过讲师: 34人学习过
尼古拉?特斯拉是19世纪末20世纪初那场改变了人们日常
这是一本写给高中生、大学生以及所有希望提高分析思维
本书是企业应对不断变化的市场环境、客户期望和新技术
这是一个最坏的年代,J2EE Web开发技术已经迟滞多年;这是一个最好的年代,J2EE Web开发技术的新变革留给勇于创新的人!
51CTO旗下网站查看:3462|回复:2
这个程序是一个处理用户管理的,见第一个图
我点击了添加用户按钮
弹出子窗口,如图2
第一次在输入框中输入数据,数据正常录入,如果不关闭这个窗口,一直输入也一直正常
不正常的是
当我关闭这个子窗口以后,再重新打开
这次窗口程序执行两次了(因为输入框在事件处理后我没有设置为空值,所以可以看出执行了两次)
当我再一次关闭后再打开,程序就执行三次
再关闭再打开,就四次
package userM
//import classA
import kunpeng.loginWindow.*;
import java.awt.BorderL
import java.awt.C
import java.awt.FlowL
import java.awt.F
import java.awt.event.*;
import java.sql.*;
import java.util.V
import javax.swing.*;
import javax.swing.table.DefaultTableM
public class UserManage extends JFrame{
ResultSet rs=
//子窗口输入框
JTextField userName =new JTextField(12);
JPasswordField password=new JPasswordField(12);
JPasswordField confirmPassword=new JPasswordField(12);
//子窗口标签
JLabel userNameLabel =new JLabel(&新用户:&);
//userNameLabel.setFont(new Font(&微软雅黑&,Font.BOLD,18));
JLabel passwordLabel =new JLabel(&密码:&);
JLabel confirmPasswordLabel=new JLabel(&确认密码:&);
JLabel userRightSetLabel=new JLabel(&权限:&);
//子窗口按钮
JButton yesButton=new JButton(&确认&);
JButton cancelButton=new JButton(&取消&);
JComboBox userRightSet=new JComboBox();
//子窗口JFrame
JFrame add_User_Window =new JFrame();//增加用户窗口
JFrame addUser_Notice=new JFrame();//增加用户窗口的各种提示信息
//从数据库获取数据方法& &&&
public Vector&&getData(){&&
&&Vector vector=new Vector();
& &Class.forName(&com.mysql.jdbc.Driver&);//驱动
& &Connection conn=DriverManager.getConnection(&jdbc:mysql://localhost:3306/KunPengContactsDataBase?useUnicode=true&characterEncoding=gbk&,&root&,&3508522&);
& &//陈述对象
& &java.sql.Statement stmt=conn.createStatement();
& && &String createDataBase=&CREATE DATABASE IF NOT EXISTS KunPengContactsDataBase &;//创建数据库
& && &String createTable=&CREATE TABLE KunPengContactsDataBase(id int unsigned NOT NULL auto_increment,userName varchar(20) NOT NULL,password& +
& && && && && && &&&& varchar(20) NOT NULL,userRight varchar(100) NOT NULL,PRIMARY KEY(id))&;//创建表
& && &String dropTable=&DROP TABLE IF EXISTS KunPengContactsDataBase&;//判断表是否存在
& && &stmt.execute(createDataBase);
& && &stmt.execute(dropTable);
& && &stmt.execute(createTable);
& &//返回结果集
& &rs=stmt.executeQuery(&select * from KunPengContactsDataBase&);
& &ResultSetMetaData rm=rs.getMetaData();
& &//循环打印出数据库表中数据
& &int n=rm.getColumnCount();
& &while(rs.next()){& &
& & Vector ve=new Vector();
& & for(int i=1;i&n+1;i++){
& &&&System.out.print(rs.getString(i)+&&&&);
& &&&String s=rs.getString(i);
& &&&ve.add(s);
& & vector.add(ve);//Vector对象接收表中数据
&&} catch (Exception e) {
& &// TODO Auto-generated catch block
& &e.printStackTrace();
&&}finally{if(rs!=null){
& &&&rs.close();//关闭结果集
& & } catch (Exception e) {
& &&&// TODO Auto-generated catch block
& &&&e.printStackTrace();
& &if(stmt!=null){
& &&&stmt.close();//关闭陈述对象
& & } catch (Exception e) {
& &&&// TODO Auto-generated catch block
& &&&e.printStackTrace();
& &if(conn!=null){
& &&&conn.close();//关闭连接
& & } catch (Exception e) {
& &&&// TODO Auto-generated catch block
& &&&e.printStackTrace();
//向数据库插入数据方法
public void insertData(String user,String passwordText,String userRightSet_select){& &
&&Class.forName(&com.mysql.jdbc.Driver&);//驱动
& &&&Connection conn=DriverManager.getConnection(&jdbc:mysql://localhost:3306/KunPengContactsDataBase?useUnicode=true&characterEncoding=gbk&,&root&,&3508522&);//建立连接
& &&&String createDataBase=&CREATE DATABASE IF NOT EXISTS KunPengContactsDataBase&;//创建数据库
& &&&String createTable=&CREATE TABLE KunPengContactsDataBase(id int unsigned NOT NULL auto_increment,userName varchar(20) NOT NULL,password& +
& && && && && && & & varchar(20) NOT NULL,userRight varchar(100) NOT NULL,PRIMARY KEY(id))&;//创建表
& &&&String dropTable=&DROP TABLE IF EXISTS KunPengContactsDataBase&;//判断表是否存在
& &&&String selectData=&SELECT * FROM KunPengContactsDataBase where id=1&;
& &&&//String code=&SET KunPengContactsDatabase GBK&;
&&stmt=conn.createStatement();
&&//stmt.execute(code);
& &int c=stmt.executeUpdate(&insert into KunPengContactsDataBase(userName,password,userRight) values('& + user + &','& +passwordText + &','&+userRightSet_select+&')&);
& &ResultSet result=stmt.executeQuery(selectData);
& &while (result.next()){
& & System.out.println(result.getString(&userRight&)+&&);
& & } catch (Exception e) {
& && &&&e.printStackTrace();
public void deleteUser() throws ClassNotFoundException, SQLException
&&Class.forName(&com.mysql.jdbc.Driver&);//驱动
& &&&Connection conn=DriverManager.getConnection(&jdbc:mysql://localhost:3306/KunPengContactsDataBase& +
& && & &?useUnicode=true&characterEncoding=gbk&,&root&,&3508522&);//建立连接
& &&&String deleteUser=&&;
public&&UserManage(){
//界面参数设置& && && && && &
this.setTitle(&用户设置&);
this.setBounds(400, 300, 500, 300);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
userRightSet.addItem(&普通用户&);
userRightSet.addItem(&游客&);
Vector vector1=new Vector();
vector1.add(&用户名&);
vector1.add(&权限&);
//默认表格模型
final DefaultTableModel tableModel=new DefaultTableModel();
tableModel.setDataVector(getData(), vector1);
JTable table=new JTable(tableModel);
table.getSelectedRow();
/*添加点击事件*/
table.addMouseListener(new MouseListener(){
&&public void mouseClicked(MouseEvent arg0) {
& &// TODO Auto-generated method stub
& &JOptionPane.showMessageDialog(addUser_Notice,
& && &&&&用户名不能为空&,
& && &&&&提示&,
& && &&&JOptionPane.WARNING_MESSAGE);
&&public void mouseEntered(MouseEvent arg0) {
& &// TODO Auto-generated method stub
&&public void mouseExited(MouseEvent arg0) {
& &// TODO Auto-generated method stub
&&public void mousePressed(MouseEvent arg0) {
& &// TODO Auto-generated method stub
&&public void mouseReleased(MouseEvent arg0) {
& &// TODO Auto-generated method stub
JButton Add_User=new JButton(&增加用户&);
JButton Edit_User=new JButton(&编辑用户&);
JButton Del_User=new JButton(&删除用户&);
//添加一个面板并设置参数
JPanel jp=new JPanel();
jp.setBackground(Color.darkGray);
//向面板中添加组件
& & //jp.add(label1);
jp.add(Add_User);
jp.add(Edit_User);
jp.add(Del_User);
//jp.add(button);
//将表格添加到滚动面板
JScrollPane js=new JScrollPane(table);
//向JFrame添加组件
this.getContentPane().add(js);
this.add(jp,BorderLayout.SOUTH);
this.setVisible(true);
//添加用户&&按钮事件绑定
Add_User.addActionListener(new ActionListener()
&&String userRightSet_select=&普通用户&;
&&String passwordT
&&String confirmPasswordT
&&String userRightSet_selectT
&&Box LabelBox,FieldBox,LabelFieldBox,ButtonBox,BaseB//使用BoxLayout
&&public void actionPerformed(ActionEvent e) {
& &// TODO Auto-generated method stub
& &userRightSet.addActionListener(new ActionListener(){
& & public void actionPerformed(ActionEvent e) {
& &&&// TODO Auto-generated method stub
& &&&JComboBox cb=(JComboBox)e.getSource();
& &&&userRightSet_select=(String)cb.getSelectedItem();
& &/*标签Box*/
& &LabelBox=Box.createVerticalBox();
& &LabelBox.add(userNameLabel);
& &LabelBox.add(Box.createVerticalStrut(12));
& &LabelBox.add(passwordLabel);
& &LabelBox.add(Box.createVerticalStrut(12));
& &LabelBox.add(confirmPasswordLabel);
& &LabelBox.add(Box.createVerticalStrut(12));
& &LabelBox.add(userRightSetLabel);
& &/*输入框Box*/
& &FieldBox=Box.createVerticalBox();
& &FieldBox.add(Box.createVerticalStrut(10));
& &FieldBox.add(userName);
& &FieldBox.add(Box.createVerticalStrut(10));
& &FieldBox.add(password);
& &FieldBox.add(Box.createVerticalStrut(10));
& &FieldBox.add(confirmPassword);
& &FieldBox.add(Box.createVerticalStrut(10));
& &FieldBox.add(userRightSet);
& &/*按钮Box*/
& &ButtonBox=Box.createHorizontalBox();
& &ButtonBox.add(Box.createHorizontalStrut(120));
& &ButtonBox.add(yesButton);
& &ButtonBox.add(Box.createHorizontalStrut(20));
& &ButtonBox.add(cancelButton);
& &/*标签和输入框Box*/
& &LabelFieldBox=Box.createHorizontalBox();
& &LabelFieldBox.add(Box.createHorizontalStrut(20));
& &LabelFieldBox.add(LabelBox);
& &LabelFieldBox.add(Box.createHorizontalStrut(10));
& &LabelFieldBox.add(FieldBox);
& &LabelFieldBox.add(Box.createHorizontalStrut(20));
& &/*baseBox*/
& &BaseBox=Box.createVerticalBox();
& &BaseBox.add(Box.createVerticalStrut(12));
& &BaseBox.add(LabelFieldBox);
& &BaseBox.add(Box.createVerticalStrut(8));
& &BaseBox.add(ButtonBox);
& &BaseBox.add(Box.createVerticalStrut(10));
& &add_User_Window.add(BaseBox);
& && &add_User_Window.setBounds(120,125,308,220);
& &add_User_Window.setBackground(Color.blue);
& &add_User_Window.setResizable(false);
& &add_User_Window.show();
& &/*确定 按钮事件*/
& &yesButton.addActionListener(new ActionListener()
& & public void actionPerformed(ActionEvent e)
& &&&// TODO Auto-generated method stub
& && &&&//获得输入框中的值
& &&&passwordText=password.getText().toString();
& &&&confirmPasswordText=confirmPassword.getText().toString();
& &&&userRightSet_selectText=userRightSet_
& &&&user=userName.getText();
& &&&if(!user.equals(&&)&&!passwordText.equals(&&)&&passwordText.equals(confirmPasswordText))
& && &insertData(user,passwordText,userRightSet_selectText);//插入数据
& && &System.out.println(&到这里&);
& && &Vector v2=new Vector();//接受数据并显示在列表中
& && &v2.add(user);
& && &System.out.println(user+&lalalalalalalal&);
& && &v2.add(userRightSet_selectText);
& && &tableModel.addRow(v2);
& && &JOptionPane.showMessageDialog(addUser_Notice,
& && && &&&&添加用户成功&,
& && && &&&&温馨提示&,
& && && &&&RMATION_MESSAGE);
& &&&if(user.equals(&&)){
& && &JOptionPane.showMessageDialog(addUser_Notice,
& && && &&&&用户名不能为空&,
& && && &&&&提示&,
& && && &&&JOptionPane.WARNING_MESSAGE);
& &&&if(passwordText.equals(&&))
& && &JOptionPane.showMessageDialog(addUser_Notice,
& && && &&&&密码不能为空&,
& && && &&&&提示&,
& && && &&&JOptionPane.WARNING_MESSAGE);
& &&&if(!passwordText.equals(confirmPasswordText))
& && &JOptionPane.showMessageDialog(addUser_Notice,
& && && &&&&两次输入密码不一致!&,
& && && &&&&提示&,
& && && &&&JOptionPane.WARNING_MESSAGE);
& &&&userName.setText(&&);
& &&&password.setText(&&);
& &&&confirmPassword.setText(&&);
public static void main(String[]args){
UserManage add=new UserManage();
add.show();
(21.87 KB)
(14.76 KB)
(26.91 KB)
图2 重复添加了很多内容
没有人回答吗
为窗体的关闭按钮写一个监听事件,并调用System.exit方法退出程序,不要运用
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);退出程序,试试看。一个简单的自动执行程序(Java,HttpClient,HttpMethod) -
- ITeye技术网站
有许多的情况我们都需要自己查看一个网页,并且执行这个网页上的某个方法,比如百度的搜索,/s?wd=google&n=2,你可以直接在地址栏中输入,也可以通过Java程序来执行这个过程:
写个示例:
public static void main(String[] args) throws Exception{
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost(new HttpHost(new URI("")));//主机设置,写的是
HttpMethod method =
byte[] responseBody =
method = getPostMethod("");//设置请求URL,可以是
client.executeMethod(method);
responseBody = method.getResponseBody();
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
method.releaseConnection();
System.out.println(new String(responseBody,"GBK"));
private static HttpMethod getPostMethod(String url){
PostMethod post = new PostMethod("/s");
NameValuePair[] values = {new NameValuePair("wd","google"),new NameValuePair("n","2")};//设置请求参数
post.setRequestBody(values);
//都是通过key和value的关系设置值
post.setRequestHeader("Host", "");
post.setRequestHeader("User-Agent","Mozilla/4.0 ( MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)");
post.setRequestHeader("Accept","image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*");
post.setRequestHeader("Accept-Language", "zh-CN");
post.setRequestHeader("Accept-Encoding", "gzip,deflate");
post.setRequestHeader("Referer","");
post.setRequestHeader("Cookie", "");
post.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
这个过程主要的是设置请求的参数,比如说请求头和请求体,并且通过client.executeMethod的方法来执行,并且返回服务器响应的信息,可以从中提取你所需要的信息。
浏览: 17975 次
来自: 深圳
JNDI只能在Tomcat5中配置,复制到Tomcat6中吧? ...
JNDI确实比较规范,适合中大型项目采用,其他数据库连接字符串 ...
既然知道我是刚入门的,为什么不给我点建议呢?
确实是刚入门
CREATE TABLE
`ql`.`user` (如果在java中判断只允许一个当前进程运行?平台是linux,有没有比较好的实现,我想到的一些办法都有不太好的缺点。
回答1:不如先说说你的办法?
kyoforever
回答2:单例模式~
回答3:关注
kyoiorilida
回答4:1. 什么叫做“判断只允许一个当前进程运行”呢?程序是你写的,你不去创建新的进程不就可以了吗?
2. 既然是 Java 程序,那么 Linux 与否有什么关系?
回答5:借鉴多进程编程中临界区的概念,如果有多个进程进入设立的临界区,就让大于1的退出.
这个临界区是一个文件,你往里面写个字符,如果下一个进程发现里面有字符,就退出.
kyokarockman
回答6:窗体是JBUILDER声称的,如果你觉得事件那部分不好你可以改,不过思路还是LS的思路
import javax.swing.JF
import java.awt.event.*;
import java.io.F
import java.io.BufferedR
import java.io.FileR
import javax.swing.JOptionP
import java.io.*;
&p& Title:
&p& Description:
&p& Copyright: Copyright (c) 2007 &/p&
&p& Company:
* @author not attributable
* @version 1.0
public class only extends JFrame {
public only() {
this.setSize(400,300);
this.show();
boolean ff=this.ifopen();
if (ff==false)
this.setopen();
catch(Exception e) {
e.printStackTrace();
public static void main(String[] args) {
only only1 = new only();
private void jbInit() throws Exception {
this.addWindowListener(new only_this_windowAdapter(this));
void this_windowClosing(WindowEvent e) {
this.setclose();
System.exit(0);
//设置标实为N
public void setclose(){
File f1 = new File( & &);
String path = f1.getAbsolutePath();
System.out.println(path);
FileWriter ff = new FileWriter(path +
&\\classes\\check.ini &);
ff.write( &N &);
ff.close();
catch (Exception ex) {
System.out.println(ex);
//设置标实为Y
public void setopen(){
File f1 = new File( & &);
String path = f1.getAbsolutePath();
System.out.println(path);
FileWriter ff = new FileWriter(path +
&\\classes\\check.ini &);
ff.write( &Y &);
ff.close();
catch (Exception ex) {
System.out.println(ex);
//判断是否存在文件且信息标实为Y
public boolean ifopen(){
boolean f=
File f1=new File( & &);
String path=f1.getAbsolutePath();
System.out.println(path);
FileReader ff=new FileReader(path+ &\\classes\\check.ini &);
BufferedReader in=new BufferedReader(ff);
while ((s=in.readLine())!=null)
if (s.equals( &Y &))
JOptionPane.showMessageDialog(this,
&您已经打开一个窗口了! &,
RMATION_MESSAGE);
System.exit(0);
}catch(Exception e){
System.out.println(e);
kyokosongbing

我要回帖

更多关于 腰酸痡直起来不舒服 的文章

 

随机推荐