启动和停止的问题,急!!

奔跑的大空翼 2003-05-23 09:51:11
请大家看看下面的程序,当我启动后,无法再使用 java ListenNewMsg stop 命令停止程序,因为这样运行会产生另一个对象,而不是刚才运行 java ListenNewMsg start 时产生的那个对象了,不知道该怎么解决?

import sms.*;

/**
* <p>本例执行方法:<br><br>
* 启动: java ListenNewMsg start<br>
* 停止: java ListenNewMsg stop<br><br>
*/

public class ListenNewMsg {
CSMS sms = new CSMS();

// 打开串口
public void open() {
try {
sms.init();
System.out.println("启动:....................................................................[OK]");
}
catch (Exception e) {
System.err.println(e.getMessage());
}
}

// 关闭串口
public void close() {
try {
sms.close();
System.out.println("停止:....................................................................[OK]");
}
catch (Exception e) {
System.err.println(e.getMessage());
}
}

public static void main(String[] args) {
ListenNewMsg listenNewMsg1 = new ListenNewMsg();
if(args.length < 1){
System.out.println("命令错误,请加参数。");
}
else{
if (args[0].equals("start")) {
listenNewMsg1.open();
}
else if (args[0].equals("stop")) {
listenNewMsg1.close();
}
else
System.out.println("参数错误。");
}
}

}
...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kangta 2003-05-23
  • 打赏
  • 举报
回复
学习UP下
奔跑的大空翼 2003-05-23
  • 打赏
  • 举报
回复
或者我可以就在主线程中不断判断,直到有stop之类的信号,然后去执行close方法,这时我的stop消息应该怎么发送给程序呢?
不知这种方法可行不?
奔跑的大空翼 2003-05-23
  • 打赏
  • 举报
回复
如果我不使用socket通信或rmi之类的方法,有什么解决办法?
可以不用我的这种启动、停止方法。
seven1996 2003-05-23
  • 打赏
  • 举报
回复
up!
gz
bluesmile979 2003-05-23
  • 打赏
  • 举报
回复
ListenNewMsg listenNewMsg1 = new ListenNewMsg();

public static void main(String[] args) {
if(args.length < 1){
System.out.println("命令错误,请加参数。");
}
else{
if (args[0].equals("start")) {
listenNewMsg1.open();
}
else if (args[0].equals("stop")) {
listenNewMsg1.close();
}
else
System.out.println("参数错误。");
}
}
ChDw 2003-05-23
  • 打赏
  • 举报
回复
想要完成使用java yourclass stop这种方式停止原来运行的程序
那么你就必须依赖于socket通信之类的方法来完成,你可以使用自定义的socket通信
或者rmi等等的方法。你原来的写法是肯定行不通的
kindlemoney 2003-05-23
  • 打赏
  • 举报
回复
这类问题一般可以用"信号灯"的方法解决。
把一个变量存到文件中,初值设成1,要停止则置成0。
程序通过对此文件的设置和轮循决定何时结束。
ChDw 2003-05-23
  • 打赏
  • 举报
回复
首先你要清楚,你调用java yourclass stop方法时候,已经和原来的运行的
java yourclass start完全脱离,两者可以说是毫无关系的,无论成员变量,方法
全部都没有共享。

所以这两者是不可能直接进行联系的,Socket,RMI之类才能够通知到原来的类

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧