мне нужно запустить некоторые Java-код на PHP, так что я нашел этоPHP/Java Bridge UnsupportedClassVersionError
http://php-java-bridge.sourceforge.net/pjb/index.php
так что я скачал и кот положил JavaBridge.war в каталоге WebApps и я получил примеры работы (Мне потребовалось некоторое время, чтобы понять это)
Я могу даже загружать встроенные java-файлы Java("java.lang.System")
и запускать примерные банки с моим собственным PHP-кодом.
То, что я не мог сделать свою собственную баночку и запустить его я попробовал множество различных компиляторов (Затмение, 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>
я поставил банку в ... \ tomcat \ webapps \ JavaBridge \ WEB-INF \ lib и файл php в ... \ tomcat \ webapps \ JavaBridge
и я получаю следующую ошибку, когда я проверить 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: [email protected]://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
версии различны, но это должно работать, так что я не верю, что это моя проблема
Какая версия Java относится к tomcat? –
@subirkumarsao Я пробовал кое-что, но не мог получить хороший ответ, как я мог это понять? – m1sk
Обычно мы указываем Java на tomcat через переменные среды JAVA_HOME или JRE_HOME. Проверьте их, если нет, укажите один с правильной версией Java. Сохраняйте версию компилятора (jdk) и JVM (jre) одинаковой, хотя это не обязательно. –