小编xǝl*_*ǝlɐ的帖子

NSUserDefaults同步方法

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"xxxxxxxx" forKey:@"name"];

[defaults synchronize];
Run Code Online (Sandbox Code Playgroud)

我需要知道为什么我必须使用上面代码的最后一行[defaults synchronize]?使用它的目的是什么?这是必须的吗?

iphone cocoa-touch

49
推荐指数
4
解决办法
3万
查看次数

Java-执行Shell命令不起作用

我正在制作一个简单的Java套接字程序,将文本从一台计算机发送到另一台计算机.

码:

    Scanner scan =  new Scanner(System.in);
    System.out.println("Starting Server...");
    ServerSocket server = new ServerSocket(7777);
Run Code Online (Sandbox Code Playgroud)

程序将套接字绑定到上面代码示例中第3行的端口7777.但是,此程序有时会返回BindException.为了解决这个问题,我在绑定发生之前添加了这行代码:


Runtime.getRuntime().exec("lsof -t -i:7777 | xargs kill");
Run Code Online (Sandbox Code Playgroud)

所以,总的来说:


    Scanner scan =  new Scanner(System.in);
    System.out.println("Starting Server...");
    Runtime.getRuntime().exec("lsof -t -i:7777 | xargs kill");
    ServerSocket server = new ServerSocket(7777);
Run Code Online (Sandbox Code Playgroud)

这应该运行shell命令来终止在端口7777上运行的任何进程.但是,它不会.如果在Terminal.app中键入相同的命令,它可以工作,如果我使用与上面示例的第4行相同的语法并使用不同的命令,比如"say hello",那么该命令可以工作,但不能使用kill命令.


所以,

为什么该命令不执行?

谢谢.

java shell execution

1
推荐指数
1
解决办法
1347
查看次数

标签 统计

cocoa-touch ×1

execution ×1

iphone ×1

java ×1

shell ×1