2013-01-16 42 views
0

我正在構建一個網站,它將使用文件來呈現社交圖。這些文件是由JAVA的後端創建的。這個JAVA程序由4個類和4個庫組成。我知道爲了通過PHP來運行JAVA程序,我需要使用「exec」命令來調用它,但是我看到的所有示例都有.jar可執行文件,而不是.java文件。所以,我想問兩個問題:關於.jar文件和通過PHP運行java程序的問題

  1. 是否可以在不創建.jar文件的情況下調用PHP的.java主類?如果是這樣,那麼「exec」命令的語法是什麼?
  2. 如果我必須創建.jar可執行文件,我只需要將它放在網站文件夾中,然後調用它?我的意思是,.jar文件是否包含程序需要的所有類和庫?我不談論JAVA庫,我有4個特定的庫(MongoDB,Neo4j,GEXF分析器和Lucene DB),它們不屬於Java默認值。預先感謝,請原諒我的語法和拼寫錯誤。
+0

php對java一無所知。您必須使用與您嘗試從命令行運行應用程序時完全相同的exec()內容,例如, 'exec('命令行的東西')'。 –

回答

1

您必須至少將.java文件編譯爲.class文件。如果他們在一個jar文件中會更容易,但這不是必需的。

1) 一個)的java -cp /location/to/.class/files -jar /location/to/the.jar

b)中的java

2)的jar文件不具有是可執行的,但如果這樣做更容易,可以正確設置清單,然後去執行。

當你說圖書館,你的意思是其他.jar文件或本機.dll或.so庫?如果後者,你必須讓你的庫路徑設置來找到它們。

+0

感謝您的回答。庫是我包含在我的項目中的.jar文件。所以,據我所知,我必須爲整個項目提供.class文件或.jar文件?使用.class文件,該命令的語法是什麼? – Lefteris008

+0

見上面的1 a。如果你有.class文件和.jar文件,你可以使用 java -cp /path/to/class/files;/path/to/other.jar main –

0

SourceForge上有一個PHP-Java bridge項目。另外,您可以通過將其作爲servlet運行來公開後端進程,這可能是正確的做法。如果一切都失敗了,你可以「執行」它。