`

Java只启动一个实例的方法

阅读更多
任何一个计算机系统,其端口都是独占的,这就是说:如果一个程序占有了某个端口,在它没有退出前其他程序是不能在占有该端口。很多这样的例子例如:不能用一个端口起两个tomcat。所有我们也可以利用这点开发一个独占的窗体,只有该窗体不销毁就不能启动第二个这样的窗体。

基本上不需要担心绑定端口会给系统造成什么负担或者影响,windows默认有65535个端口,只要你绑定一个比较大一些端口(20000以上),给系统造成冲突的可能性几乎没有,即便有了换一个即可。

对于运行未安装服务包的 Windows XP 或 Windows Server 2003 的计算机,下面给出了不同的端口范围:
众所周知的端口范围(由 IANA 保留):0 到 1023
临时端口范围(对于通配绑定):1025 到 MaxUserPort 注册表设置值
可用作特定端口(对于特定绑定):从 0 到 65535 的任何未封锁端口
保留端口的可用范围:1025 到 MaxUserPort 以及 49152 到 65535
封锁端口的可用范围:MaxUserPort + 1 到 49151(除非 MaxUserPort 的值设置为 49152 或更高,这种情况下没有可封锁端口范围)

一般用到的是1到65535,其中0不使用 
一般的应用程序使用1024到4999用来通讯 
5000以后的用来用户自定义端口

程序如下:
import java.io.IOException;
import java.net.ServerSocket;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class OnlyOneFrame extends JFrame{
	private OnlyOneFrame(){
		ServerSocket server;
		try {
			server = new ServerSocket(22333);
			server.isBound();
		} catch (IOException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(this, "您已经启动了一个窗体");
			// 如果端口已经绑定,系统退出,释放内存。
			System.exit(0);
		}
		
		setTitle("Your title");
		setSize(805, 410);
		setResizable(false);
		setLocationRelativeTo(getOwner());
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}
	
	public static void main(String[] args) {
		new OnlyOneFrame();
	}

}

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java数据库编程实例

    安装Jbuilder集成开发环境时,首先使用WINZIP将压缩的Jbuilder.zip文件解压缩到一个临时目录 中,然后执行临时目录中的setup.exe可执行文件,按照JBuilder安装向导完成JBuilder开发环境的 安装。在启动JBuilder开发...

    java 基础 类对象创建实例化过程 实例解析

    * 执行过程为:启动类是否为继承关系树中的一个,如果是则先执行启动类的所有父类的静态语句块;然后执行启动类的静态语句块static{} -> * 执行启动类的main函数 -> 创建对象的继承树从高到底的类层次中的静态块...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    一个java RMI应用实例 构建简单的RMI应用

    定义一个扩展远程接口(Remote)的接口,这个接口方法将供给客户端调用,该接口中的每个方法都必须声明抛出RemoteException。 定义一个实现该接口并扩展了UnicastRemoteObject的类(服务端运行的服务类),这个类将...

    微信小程序appium启动实例方法

    微信小程序启动方法,传入小程序的名字,启动微信,下拉,找到对应小程序,点击,即可启动。使用appium框架,java语言编写,仅应用于android的小程序自动化启动

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    elasticsearch java客户端Jest入门实例

    第一步:启动一个elasticsearch服务,bin目录下的elasticsearch.bat 第二步:建索引,执行MusicReviewIndex中的单元测试方法index() 第三步:检索测试,执行MusicReviewSearch中的单元测试方法search() 本实例基于: ...

    aws-instance-manager-java:启动和停止 AWS EC2 实例

    架构概览在卡佩罗博士的课堂上开发的系统由一个计算“空间”和许多“计算机”实例组成,该空间可以将子任务委托给这些实例。 客户端应用程序连接到空间并提交计算任务。 所有这些都是用 Java 开发的,并通过 Java ...

    单例模式java代码

    编写一个类LimitInstanceClass,...编写一个UseLimitInstanceClass类,在其main方法中实例化10个AccessLimitInstanceClassThread线程对象,并启动各个线程。 设置InstanceLimit.cfg的内容为3,写出你的程序的运行结果。

    java源码包4

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    Java Socket实例(服务器多线程)

    Java Socket实例(服务器多线程) 之前3积分下的代码,代码不错就是太贵,现本人分享出来

    Java程序多进程运行模式的实例分析

    这样做虽然占用了一些系统资源,但会使程序更加稳定,因为新启动的程序是在不同的虚拟机进程中运行的,如果有一个进程发生异常,并不影响其它的子进程。在Java中我们可以使用两种方法来实现这种要求。最简单的方法...

    java源码包3

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    java源码包2

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    JAVA 范例大全 光盘 资源

    实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见问题 找不到类文件 6 常见问题 语法错误 7 第2章 Java基础语法 9 实例4 变量和常量 9 实例5 基本数据类型转换 10 实例6 ...

    Java启动、暂停AWS RDS实例或修改实例类型的demo

    代码主要是启动、暂停AWS RDS实例或修改实例类型的demo。 注:执行main()之前先修改aws.accessKeyId和aws.secretAccessKey以及instance_id。

    Java开发技术大全(500个源代码).

    invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...

Global site tag (gtag.js) - Google Analytics