導航:首頁 > 編程語言 > phpexecjava

phpexecjava

發布時間:2022-04-18 13:20:19

php exec在linux執行 jdk沒一點反應

先說我認為最有可能的問題吧
請在後面加上這句exec("exit(0)");
這個是針對你指令里的 >

然後猜測下還有什麼可能的問題吧
usr/java/jdk1.6.0_23/bin/ 這個path是不是沒給access的許可權?可以試著把jar js文件復制到現在的目錄下,再試下看看問題是不是在這(不好意思,沒試過樓主這種寫法,java安裝好在哪裡用都是java就好了吧,為什麼特意給path呢)
順便糾正個小問題吧
$print_r($o);這個前面多了個$,還請樓主仔細檢查啊,不要最後發現是這么個粗心問題造成的
建議樓主試下
exec('java -version',$o);
print_r($o);
(因為我這里echo $JAVA_HOME是什麼也不顯示的..)
還有什麼呢
關於path還可以試下apache_lookup_uri
--------------------------------------------------------------------
那段我用的是給你看個例子,如果你用的話要改的...(不會直接用了吧orz)
你把yuicompressor-2.4.2.jar test.js 復制到現在的目錄下
代碼這樣
exec("java java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v test.js > packed.js",$output,$status);
exec("exit(0)");
//chmod("packed.js",0644);//如果你需要的話在把這句加上
echo "<h4 style='color:#CC0000'>Error</h4>\n",
join("\n",$output);
還有樓主你不仔細看回答啊$print_r($o);這句你多打了$,是錯的,快點從代碼里刪除吧....

Ⅱ php怎樣在客戶端用java檢驗用戶信息

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>

</HEAD>
<script type="text/javascript" language="javascript">

function onYanZheng1()
{
//// alert(username);
name1=document.form1.text1.value
name2=document.form1.text2.value
var regx=/^\-?[0-9]*\.?[0-9]*$/g;
if(!isTrueName(name1)){
alert('只能輸入1-30個以字母開頭的字串!');
return false;
}
if(!isPasswd(name2)){
alert('校驗密碼:只能輸入6-20個字母、數字、下劃線!');
return false;
}
return true;

}
function isTrueName(s) //只能輸入1-30個以字母開頭的字串
{ var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)){
return false}else{
return true }
}

function isPasswd(s) ////校驗密碼:只能輸入6-20個字母、數字、下劃線
{ var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) {
return false}else{
return true }}

</script>

<BODY>
<form method="post" name=form1>
<input name=text1 >
<input name=text2 >
<input type="button" name="button" value="提交" onclick='onYanZheng1()'>
</form>
</BODY>
</HTML>
我試過了,真接就可以用了,如果想改下驗證規則,可以把正則表達試換下就可以了,希望對你有幫助!

Ⅲ php exec調用java程序 寫文件不執行

在伺服器中的有一段代碼是通過調用jar包實現的:
shell_exec("java -jar $jar_file $confa $confb ")
剛開始的時候每天運行都很正常,可是最近php每次執行到這個函數的時候就被暫停了,一直卡在這里,不再向下面運行。

Ⅳ 關於php和java的問題,獲取返回值!

把java做成webservice服務介面,或者是一般的介面也可以,然後php調用介面地址就可以了啊。

Ⅳ php exec 運行import類java文件問題

想通過參數傳遞?

public class as4 {
public static void main(String[] args){
int n = Integer.parseInt(args[0]);
double factorial = 1;
for (int i=1;i<=n;i++){
factorial = factorial*i;
}
System.out.println("Factorial = " + factorial);
}
}

聽說exec不能用於客戶端?

這個是真的。

Ⅵ 請教一下java和php協同開發的方法

引用
因為在做垂直搜索工作中,使用的是java編寫的一個搜索類庫。做垂直搜索,很多實用要使用到配置。當搜索的信息量大時,網站的更新。搜索程序的配置維護是一個不可忽視的問題。所以用了php做網頁,提供配置界面,這樣就可以不用直接修改配置文件或是配置資料庫表。當把配置信息配置好了,我們需要檢測配置是否正確,因為使用的是java程序,所以檢測配置的正確與否使用的也是java程序來檢測。這里就存在一個問題,就是需要把php頁面上的信息傳入到java程序中去檢測。這個時候就需要php和java通信了。下面我就來介紹下怎麼使php跟java通信(當然,你也可以使用類似webservice等技術)也就是php中調用java程序。 php要調用java程序:需要以下准備,php程序,java程序,還有就是shell程序或是bat程序。下面分別介紹下在linux伺服器下php調用java程序和在windows伺服器下調用java程序。前提是php,apache,jdk的環境都已經配置好。
一 在linux下php調用java程序是通過shell文件。分別是以下三個文件: test_shell.php test_shell.java test_shell.sh 他們的源代碼如下:

1.test_shell.java程序代碼

public class test_shell {

public static void main(String[] args) {

System.out.println("你輸入的參數是:"+args[0]+"t"+args[1]);

}

}

2.test_shell.php程序代碼

<?php

/*

* 該函數是用來執行shell命令的,其實還可以使用:exec(),system(),
* popen()和pclose(),passthru() 函數。最長用的是前面兩個和例中使
* 用的shell_exec()。

*/

$args1="我喜歡你";

$args2="我很愛你";

// 注意空格

$r=shell_exec("./test_shell.sh $args1 $args2");

echo $r;

?>

3.test_shell.sh程序代碼是

#!/bin/sh

JAVA_HOME=/usr/local/jdk

CLASSPATH=.:/usr/local/jdk/jre/lib/rt.jar:/usr/local/apache/htdocs/test_shell/test_shell.class

PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH

cd /usr/local/apache/htdocs/test_shell

java test_shell

#shell代碼結束

以下是三個程序的存放路徑和運行次序。
1.三個文件都必須在同一目錄下,比如在/usr/local/apache/htdocs/test_shell/下,不然php很難調到java程序。

2.把test_shell.java程序編譯成test_shell.class,然後把test_shell.class文件存放到CLASSPATH中。如果系統配置了那些環境變數,這里在配置一次是沒有壞處的,也不會影響配置好的系統環境變數。這里設置的好處是當沒有配置jdk環境配置,只有jre時,則需把jre放到/usr/local/jdk下就以。

二、下面先介紹在windows伺服器下,php調用java程序是通過bat文件來的。分別是以下三個文件: test_bat.php test_bat.java test_bat.sh 他們的源代碼如下:

1.java程序

public class test_bat {

public static void main(String[] args) {

System.out.println("你輸入的參數是:"+args[0]+"t"+args[1]);

}

}

2.test_bat.php程序代碼

<?php

/*

* 該函數是用來執行shell命令的,其實還可以使用:exec(),system(),
* popen()和pclose(),passthru() 函數。最長用的是前面兩個和例中使
* 用的shell_exec()。

*/

$args1="我喜歡你";

$args2="我很愛你";

// 注意空格

$r=shell_exec("./test_shell.sh $args1 $args2");

echo $r;

?>

3.test_bat.sh程序代碼是

@echo off
set path=%path%;%cd%jrebin
set CLASSPATH=.;%cd%jrelibrt.jar;%cd%test_bat.class
java test_bat %1 %2

#bat代碼結束

1.三個文件都必須放在同一目錄下,比如在/usr/local/apache/htdocs/test_bat/下,不然php很難調到java程序。

2.把test_bat.java程序編譯成test_bat.class,然後把test_bat.class文件存放到CLASSPATH中。如果系統配置了那些環境變數,這里在配置是沒有壞處的,也不會影響配置好的系統環境變數。這里設置的好處是當沒有配置jdk環境配置,只有jre時,則需把jre放到跟跟test_bat.java同一目錄下就行了。

三、上面兩個例子中,test_shell.sh用的絕對路徑,test_bat.bat是用的相對路徑。不管是絕對還是相對,只要路徑對了就行了。

Ⅶ centos php exec java

用popen試試
$fp = popen('java -version', 'r');
$ret = '';

while (!feof($fp))
{
$ret .= fgets($fp);
}
pclose($fp);

echo $ret;

Ⅷ php exec("javac/java")問題

根據提示信息,你試一下下面的方法

1.配置操作系統的環境變數右擊我的電腦->屬性->高級選項卡->環境變數

配置系統環境變數的Path編輯它,給它加上一句

C:Javajdk1.6.0_21in(這是javac.exe文件在目錄);

這可以是解決javac不是內部或外部命令的問題;

2.配置環境變數classpath在最前面加一個.;

閱讀全文

與phpexecjava相關的資料

熱點內容
安卓qq瀏覽器怎麼轉換到ios 瀏覽:292
不同編譯器的庫可以調用嗎 瀏覽:455
灰度信託基金加密 瀏覽:421
宿遷程序員兼職網上接單 瀏覽:924
電視編譯器怎麼設置 瀏覽:276
手機如何解壓漢字密碼的壓縮包 瀏覽:701
為什麼很多程序員愛用vim 瀏覽:828
安卓手機怎麼連接寶華韋健音響 瀏覽:555
12星座製作解壓球 瀏覽:867
java調用oracle數據 瀏覽:827
怎麼在伺服器上上傳小程序源碼 瀏覽:304
空中加油通達信指標公式源碼 瀏覽:38
分卷解壓只解壓了一部分 瀏覽:760
php網站自動登錄 瀏覽:705
合肥凌達壓縮機招聘 瀏覽:965
怎麼找到文件夾的圖標 瀏覽:235
linuxc編程pdf百度雲 瀏覽:190
會計pdf下載 瀏覽:833
c開源cf源碼 瀏覽:951
如何取消掉添加進app資源庫 瀏覽:732