downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Java 関数> <
Last updated: Fri, 13 Nov 2009

view this page in

例1 Java の例

<?php
// Java クラス java.lang.System のインスタンスをPHPに作成する
$system = new Java('java.lang.System');

// プロパティへのアクセスのデモ
echo 'Java version=' $system->getProperty('java.version') . '<br />';
echo 
'Java vendor=' $system->getProperty('java.vendor') . '<br />';
echo 
'OS=' $system->getProperty('os.name') . ' ' .
             
$system->getProperty('os.version') . ' on ' .
             
$system->getProperty('os.arch') . ' <br />';

// java.util.Dateの例
$formatter = new Java('java.text.SimpleDateFormat',
                      
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo 
$formatter->format(new Java('java.util.Date'));
?>

例2 AWT Example

<?php
// この例は、CLI を使用して実行することのみを考慮しています。

$frame  = new Java('java.awt.Frame''PHP');
$button = new Java('java.awt.Button''Hello Java World!');

$frame->add('North'$button);
$frame->validate();
$frame->pack();
$frame->visible True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>

注意:

  • new Java() は、有効なコンストラクタがある場合、 クラスのインスタンスを生成します。引数が指定されない場合には、 デフォルトのコンストラクタにより java.lang.Systemのようなクラスにアクセスすると 良いでしょう。このクラスは、ほとんどの機能を静的なメソッドとして 公開しています。
  • あるインスタンスのメンバーにアクセスする際には、まず bean プロパティ が探されてから、次に public フィールドが探されます。言い換えると、 print $date.time はまず $date.getTime() と解釈され、続いて $date.time と解釈されます。
  • 静的メンバおよびインスタンスメンバは共に同じ構文でアクセス可能です。 さらに、java オブジェクトが java.lang.Class 型の 場合、このクラスの静的メンバ(フィールドとメソッド)にアクセス可能です。
  • 例外が発生すると PHP の警告が出力され、結果は NULL となります。警告は "@" 記号を付けてメソッドをコールすることに抑圧できます。 直近のエラーを取得し、リセットするために以下の API を使用することができます。

  • オーバーロードの解決は、二つの言語の間で型の違いがあるため一般には 困難な問題です。PHP の Java 拡張機能は、どのオーバーロードが 最も一致するかを定義するための方法として、簡単ですがかなり 効率的なものを使用しています。 加えて、PHP のメソッド名は大文字小文字を区別しないため、選択される オーバーロードの数は増加する傾向があります。 メソッドが一度選択されると、パラメータの値は必要に応じて調整されます。 このため、(倍精度実数が論理値に変換されるといった)データの劣化が 発生する可能性があります。
  • PHP では伝統的に配列とハッシュテーブルは相互に完全に可換でした。PHP の ハッシュテーブルは整数または文字列の添字のみを使用できることに注意して ください。また、Java の primitive 型の配列は疎とすることができないことに も注意してください。これらの構造は値で渡されるため、メモリと時間の 消費量が大きくする可能性があります。



add a note add a note User Contributed Notes
Java の例
anto dot justus at gmail dot com
11-Jun-2009 02:00
php java 

The PHP code here is simple and straight forward. It is not
 OOP. But you probably got enough of that while doing the
 Java code.

<?php

java_require
("F:\\wamp5\\www\\classes\\");
$obj = new Java("hello");

// Call the "sayHello()" method

$output = $obj->SayHello();

echo
$output.' this text in PHP

'
; // Displays (so this comes from the class!)

// Call the "SayNumber()" method

$output = $obj->SayNumber();

// Displays (so this comes from the class!)
echo $output.' is a lucky number';

//Because the JVM caches everything we want reset while
 
playing with the code. Otherwise the

// a cached version of the same class file will be used
rather than the new one

echo "
Resetting back-end to initial state\n"
;

// suppress the warning message from the use of reset.

@java_reset();

?>

That's it. Now browse to the PHP page and you should get
 the results shown below.
anto dot justus at gmail dot com
11-Jun-2009 01:08
Session sharing with php and java
------------------------------------------

<?php require_once("java/Java.inc");
$session = java_session();
?>

<HTML>
<TITLE>PHP and JSP session sharing</title>
<BODY>
<?php

if(is_null(java_values($session->get("counter")))) {
 
$session->put("counter", 1);
}

$counter = java_values($session->get("counter"));
print
"HttpSession variable \"counter\": $counter<br>\n";
$session->put("counter", $counter+1);
?>
<a href="sessionSharing.jsp">JSP page</a>
</BODY>
</HTML>

Java 関数> <
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites