gpt4 book ai didi

java - PHP/Java 桥 UnsupportedClassVersionError

转载 作者:行者123 更新时间:2023-11-28 22:22:29 29 4
gpt4 key购买 nike

我需要在 php 上运行一些 java 代码所以我找到了这个

http://php-java-bridge.sourceforge.net/pjb/index.php

所以我下载了tomcat,把JavaBridge.war放到了webapps目录下我得到了这些例子(我花了一段时间才弄明白)

我什至可以加载内置的 java 东西 Java("java.lang.System")并使用我自己的 PHP 代码运行示例 jar。

我不能做的是制作我自己的 jar 并运行它我尝试了各种不同的编译器(Eclipse、Netbeans、命令行),但这并没有帮助。

我正在尝试做这样的事情 http://www.developer.com/java/other/php-with-java-using-php-java-bridge-tutorial.html

这是我的java代码:

package m1sk;

/**
*
* @author M1sk
*/
public class Hello implements java.io.Serializable{

String hi() {return "This is my hello message";}
String hello(String name) {return "Hello" + name;}
}

php代码:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
require_once ("java/Java.inc");
// $t1 = new Java("java.lang.System");
//echo $t1->getProperties(); //this works
$world = new java("m1sk.Hello");
// echo $world->hi();
echo "Hello Working Thingy\n\n";
?>
</body>
</html>

我把 jar 放在 ...\tomcat\webapps\JavaBridge\WEB-INF\lib和 ...\tomcat\webapps\JavaBridge 中的 php 文件

当我测试 http://localhost:8080/JavaBridge/mytest.php 时出现以下错误:

javax.servlet.ServletException: java.lang.RuntimeException: PHP Fatal error:  Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new m1sk.Hello. Cause: java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class m1sk.Hello) VM: 1.5.0_20@http://java.sun.com/" at:
#-13 org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1854)
#-12 org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
#-11 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
#-10 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
#-9 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
#-8 java.lang.Class.forName0(Native Method)
#-7 java.lang.Class.forName(Class.java:242)
#-6 php.java.bridge.Util.classForName(Util.java:1518)
#-5 php.java.bridge.JavaBridge.CreateObject(JavaBridge.java:445)
#-4 php.java.bridge.Request.handleRequest(Request.java:458)
#-3 php.java.bridge.Request.handleRequests(Request.java:500)
#-2 php.java.bridge.http.C in C:\xampp\tomcat\webapps\JavaBridge\java\Java.inc on line 195

php.java.servlet.fastcgi.FastCGIServlet.handle(FastCGIServlet.java:499)
php.java.servlet.fastcgi.FastCGIServlet.doGet(FastCGIServlet.java:521)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
php.java.servlet.PhpCGIFilter.doFilter(PhpCGIFilter.java:126)

我在堆栈中搜索发现了我的错误: What is the reason for UnsupportedClassVersionError?

C:\Users\M1sk\Desktop>java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b22)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)

C:\Users\M1sk\Desktop>javac -version
javac 1.6.0_25

版本不同,但这应该仍然有效,所以我不认为这是我的问题

最佳答案

UnsupportedClassVersionError 的原因是因为您的类文件是使用较新版本的 JDK(例如 Java 7)编译的,而您的 JRE 是较早版本(例如 Java 6)。

如果您正在使用外部库,那么与您正在使用的 JRE 相比,外部库可能是使用更新版本的 Java 编译器编译的。我建议您将 JRE 升级到最新版本。

如果您使用应用服务器来运行它,请检查您的应用服务器是否也在使用最新版本的 JRE。您的环境变量可能指向最新版本的 JRE,但您的应用程序服务器可能不会这样做。

关于java - PHP/Java 桥 UnsupportedClassVersionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10944568/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com