Code: Select all
,Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]
My application is 99% PHP and it uses Java for one small piece. My custom java class is not found and it seems I’ve tried everything. Any help will be most appreciated.
The <javapgm>.java compiled cleanly and created <javapgm>.class.
In the application PHP displays screen, data is entered, thenCode: Select all
<?php
… PHP code …
$callJava = new Java("javapgm");
… more PHP code
?>Warning: java.lang.ClassNotFoundException: javapgm
Versions of software:
Apache 2.0.59(Win32)
PHP 4.4.4
Java 1.5.0_01
Windows 2000 5.0
I swapped out my custom Java class for an example I found on the internet:
Code: Select all
$system = new Java("java.lang.System");
print "Java version=".$system->getProperty("java.version")." <br>\n";
print "Java vendor=".$system->getProperty("java.vendor")." <p>\n\n";
print "OS=".$system->getProperty("os.name")." ".
$system->getProperty("os.version")." on ".
$system->getProperty("os.arch")." <br>\n";
$formatter = new Java("java.text.SimpleDateFormat","EEEE,
MMMM dd, yyyy 'at' h:mm:ss a zzzz");
print $formatter->format(new Java("java.util.Date"))."\n";Java version=1.5.0_01
Java vendor=Sun Microsystems Inc.
OS=Windows 2000 5.0 on x86
Friday, July 20, 2007 at 9:33:06 AM GMT-07:00
I found the documentation regarding the difference between accessing java user classes, extension classes and bootstrap classes, then added my custom class directory (user class) to the php.ini file after java.class.path=:
java.class.path= "c:\php\extensions\php_java.jar; c:\www\slfsrvmar\javaclasses"
java.library.path = "c:\php\extensions; "c:\jdk\jdk1.5.0_01\jre\lib"
java.home = "c:\jdk\jdk1.5.0_01\bin"
java.library = "c:\jdk\jdk1.5.0_01\jre\bin\client\jvm.dll"
I tried swapping the order of the two directories in java.class.path. My custom class did not work and neither did the getPropriety test, above. The second directory in the concatenation does not seem to be accessed. Note, that Apache was stopped/started each time when php.ini was changed and a new browser window was also opened after each Apache cycling.
I then found a java method to change the directory thinking that might be the solution:
Code: Select all
$system = new Java("java.lang.System");
print "java.class.path BEFORE=".$system->getProperty("java.class.path")." <br>\n";
$system->setProperty("java.class.path", "c:\\www\\slfsrvmar\\javaclasses");
print "AFTER path change=".$system->getProperty("java.class.path")." <br>\n";java.class.path BEFORE=c:\php\extensions\php_java.jar; c:\www\slfsrvmar\javaclasses AFTER path change=c:\www\slfsrvmar\javaclasses
My class was still not found.
Then modified WINNT environment variable CLASSPATH and added c:\www\slfsrvmar\javaclasses. Rebooted and still the same problem.
I am totally mystified as to what to do next. The PHP/Java interface seems to be working or the Java version and today’s date display would not function.
Any help will be most appreciated. I’m quite new to Java.
Thanks, MAR
feyd | Please use
Code: Select all
,Code: Select all
and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read: [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]