我有一个用 java 编写的函数来读取字符串并返回处理后的结果。
我正在使用 php,并且我不想在 php 中重写 java 函数,而是想进行 shell_exec 调用并通过 Linux 中的命令行获取从 java 返回的结果。
有人能帮助我吗?
答案1
由于您的标题也提到了编译,并且我假设您有想要使用的 java 源代码 - 我认为我会尽可能使其完整,所以我还提供了示例源代码。
为简单起见,目录结构为 /mainTest,例如根目录和一个名为 mainTest 的文件夹。其中有一个名为 phpFunction.java 的 Java 源文件
java源代码如下
package mainTest;
public class phpFunction {
public phpFunction() {
}
public static void main(String[] args) {
//our input is a string, example "25", convert it into a number
int inputArg1 = Integer.parseInt(args[0]);
//will hold a value to be output
int outputValue = -1;
//call a method with our input
outputValue= multiplyInput(inputArg1);
//print the output to std out
System.out.println(outputValue);
}
//simply multiplies the input value by 2, returns results
private static int multiplyInput(int inputValue){
return inputValue*2;
}
}
如注释中所示,源代码只是将一个值作为输入,将其乘以二,然后将结果发送到标准输出。
要编译它,你需要确保已经安装了 java jdk,你可以通过执行以下操作来检查
locate javac
如果您没有安装,请安装它(您也可以在可能安装了它的其他地方编译代码)
从根目录运行
javac mainTest/phpFunction.java
你最终会在 mainTest 目录中得到一个 phpFunction.class 文件
作为测试运行
java -cp . mainTest/phpFunction 25
其中 25 是要传递的参数,输出将是
$ java -cp . mainTest/phpFunction 25
50