使用PHP exec命令打破无限循环java程序

时间:2016-04-19 17:40:08

标签: java php

我有JDK,我正在尝试执行包含无限循环的Main.java程序,我想破解java Main.java< input.txt> output.txt命令,如果它进入无限循环,如果不是无限循环,不会不会打破程序..任何解决方案?遇到麻烦

.bss

3 个答案:

答案 0 :(得分:1)

尝试将它包装在这样的类中(基本上将其包装在req.中以获取pid并在后台以这种方式使用它)

nohup COMMAND > /dev/null 2>&1 & echo $!

答案 1 :(得分:1)

这只是一个建议。你的问题会有更好的答案。

在java infinity循环中检查来自其他文本文件的某些值。就像

while true {

v = readFile('your_txt_file.txt')
if v == "true" {
    break;
}
//do your stuff   }

如果您可以将 your_txt_file.txt 值设置为false,除了 true 之外,那么java循环将会中断。

答案 2 :(得分:0)

你需要打开一个端口来监听java,然后连接并从php发送一些东西到该端口。

查看@TomaszNurkiewicz回答here他说

“”“

你可能想要的是创建一个ServerSocket并听取它:

ServerSocket serverSocket = new ServerSocket(4000);
Socket socket = serverSocket.accept();

第二行将阻塞,直到其他一些软件在端口4000上连接到您的计算机。然后您可以从返回的套接字读取。看看本教程,这实际上是一个非常广泛的主题(线程,协议......)

“”“

并且用php打开套接字你可以使用来自here的@sanmi提供the manual的代码(或接近它的一些代码)

“”“

<?php
error_reporting(E_ALL);

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "socket_create() failed: reason: " . 
         socket_strerror(socket_last_error()) . "\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "socket_connect() failed.\nReason: ($result) " . 
          socket_strerror(socket_last_error($socket)) . "\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

socket_close($socket);
?>

“”“