首先安装 jdk8u202x64(jdk-8u202-windows-x64.exe)
设置环境变量
JAVA_HOME C:\Program Files\Java\jdk1.8.0_202
CLASS_PATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
PAth ;%JAVA_HOME%\bin;
1、去http://php-java-bridge.sourceforge.net/pjb/download.php下载 JavaBridge.jar,Java.inc(新版的 在jar文件中)两个文件即可(不用下载JavaBridge.war去tomcat解压);
2、对JavaBridge.jar解压(我常用7z,rar没试过),修改解压出来的META-INF/MANIFEST.MF,在Class-Path: log4j.jar后加入依赖的包,比如我需要加lib/httpclient.jar,最后是这样的
Class-Path: log4j.jar lib/httpclient-4.1.3.jar
(注意,依赖的jar包,多个jar之间是用空格分隔,还需要注意引用的路径是相对路径)
3、将修改的好的文件重新打包成jar
3.1 先命令行cd到jar的解压包目录
3.2 执行:jar -cMf JavaBridge.jar . (意思就是把当前目录下的文件都打进JavaBridge.jar,并且不生成新的清单文件)

4、整个javabridge的文件结构如下图:


5、运行javabridge
执行命令: java -jar JavaBridge.jar SERVLET_LOCAL:8080
其中端口号找到本机未使用的1024以上的端口号即可
6、php端验证,新建javabridge.php文件
<?php
define("JAVA_HOSTS", "127.0.0.1:8080");
//此处端口与第五步的端口对应
define("JAVA_LOG_LEVEL", 2);
require_once "Java.inc";
//将第一步的下载的Java.inc与当前编辑的php文件放在同一层目录
java_set_file_encoding("UTF-8");
try {
$props = java("java.lang.System")->getProperties();
$array = java_values($props);
foreach($array as $k=>$v) {
echo "$k=>$v"; echo "<br>\n";
}
echo "<br>\n";
class MyClass {
function toString() { return "hello PHP from Java!"; }
}
$javaObject = java_closure(new MyClass());
echo "PHP says that Java says: "; echo $javaObject; echo "<br>\n";
echo "<br>\n";
echo java("php.java.bridge.Util")->VERSION; echo "<br>\n";
} catch (JavaException $ex) {
echo "An exception occured: "; echo $ex; echo "<br>\n";
}
7、javabridge.php文件目录下执行 php javabridge.php,输出信息即可证明php调用java是ok的,现在可以调用java下的类和方法了,enjoy!
8,我写的pdf
<?php
define("JAVA_HOSTS", "127.0.0.1:8181");
define("JAVA_LOG_LEVEL", 2);
require_once "Java.inc";
//将第一步的下载的Java.inc与当前编辑的php文件放在同一层目录
java_set_file_encoding("UTF-8");
$pdf= java("pdfParse.cn.pdf.parse.PDFReaderUtil")->readReceiptPdf("./fp.pdf");
print_r(java_values($pdf));
?>