2010-04-29 5 views
1

Je travaille sur windows. J'exécute des scripts PHP (5.1.3) sur Tomcat en utilisant PHP/Java bridge. Voici mon code simpleProblème appelant Java à partir du script PHP

//test.php 
<?php 
require_once("java\Java.inc"); 
$systemInfo = new Java("Test"); 
print $systemInfo->foo(); 
?> 

//test.java 
class Test 
{ 
public void foo() 
{ 
    System.out.println("hello php"); 
} 
} 

Test.class se trouve dans le même dossier que test.php. Mais le fichier php n'est pas en mesure de localiser la classe de test et je reçois l'erreur suivante -

Fatal error: Uncaught [[o:Exception]:"java.lang.Exception: CreateInstance failed: new Test. 

Si j'utilise une classe standard comme ci-dessous. Cela fonctionne -

<?php 
require_once("java\Java.inc"); 
$systemInfo = new Java("java.lang.System"); 
print "Total seconds since January 1, 1970: 
".$systemInfo->currentTimeMillis(); 
?> 

Que dois-je faire?

1) Dois-je copier ma classe à l'emplacement standard où toutes les classes Java sont conservées. (Qu'est-ce que cet endroit?)

2) Faites quelques modifications dans le fichier php.ini

+1

Erreur d'empaquetage? Pouvez-vous poster Test.java, ou au moins c'est le paquet et les signatures? –

+0

oops..sorry J'ai oublié – Bruce

Répondre

1

Avez-vous défini l'attribut suivant dans php.ini?

[java] 
java.class.path="/path/to/folder/containing/Test" 

Utilisez également un package (comme com.jack.Test) lors de la création de classes. C'est juste une convention, mais vous trouverez que cela a beaucoup de sens une fois que vous créez des projets entiers

+0

J'ai changé le php.ini comme vous l'avez dit ... Je reçois toujours la même erreur – Bruce

Questions connexes