2012-08-07 99 views
1

我的網站託管在Ubuntu上的Apache上。我得到了一個JAR文件,裏面有兩個文件夾和一些.class和.scc文件。讓我們說jar文件名= myJarfile,這個檔案裏面的文件夾= myFolder,並且這個文件夾裏面的Class = myClass。在哪裏把jar文件放在apache中?以及如何從Perl訪問它?

我被告知要運行的類是這樣的:

java myFolder.myClass 

,但我得到這個錯誤:

$ java myFolder.myClass 
Exception in thread "main" java.lang.NoClassDefFoundError: myFolder/myClass 
Caused by: java.lang.ClassNotFoundException: esGateKeeper.cookieServer 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: myFolder/myClass. Program will exit. 

我也試過:

$ java myJarfile.myFolder.myClass 
Exception in thread "main" java.lang.NoClassDefFoundError: myJarfile/myFolder/myClass 
Caused by: java.lang.ClassNotFoundException: myJarfile.myFolder.myClass 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: myJarfile.myFolder.myClass. Program will exit. 

管理員告訴我,是CLASSPATH問題。我不知道。我的網站使用PERL CGI而不使用JAVA。我不是JAVA程序員,谷歌搜索沒有讓我知道如何讓這個運行。

爲了進行身份驗證,類/或JAR文件應該在我的本地主機上啓動一個IPC守護程序,我將與我的PERL CGI進行通信。它解密我從瀏覽器獲得的cookie。

我不知道我需要在我的服務器上安裝這個軟件才能運行。我有java如下:

$ java -version 
java version "1.6.0_21" 
Java(TM) SE Runtime Environment (build 1.6.0_21-b06) 
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing) 

PI建議。

ty。 拉傑夫

_ OK __我通過導出CLASSPATH變量指向.jar文件解決了這個:

export CLASSPATH="/full/path/to/myJarfile.jar" 

然後執行罰款:

$ java myFolder.myClass 

啓動守護程序。 ...

但說實話,我不知道我是什麼在這裏繼續。這個.jar文件有兩個文件夾:myFolder和一個META-INF。 myFolder有一堆.class文件和一個.scc文件。沒有一個被命名爲「主」....

我很感激時間和幫助擴展到我。

ty。 Rajeev

回答

0

將「-jar」標誌添加到「java」的實驗。

假設「jar」文件創建獨立進程,您可以通過將啓動命令添加到/etc/rc.local來將Java進程設置爲在啓動時啓動。如果這是一項重要的服務,您還需要監控它以確保它正在運行,並準備好手動停止並啓動它。如果您檢測到它已掛起或未運行,您可能還會考慮自動重新啓動。

至於從Perl訪問它,你需要從那個人那裏得到文檔。我期望它可以在一個端口上運行,或者創建一個你可以連接的套接字。無論哪種情況,它都不應該是一個Java應用程序。 Perl的連接端口或套接字的標準方法將適用。

關於Classpath,我建議你閱讀一些documentation for Classpath,如果你還沒有。如果對最佳版本有疑問,請詢問您的JAR文件提供程序。

另見:

+0

的Tx。我讀了這個線程。我不確定:classpath變量在哪裏?我如何設置它?我需要在Apache中做什麼(如果我必須在Apache配置中執行任何操作)才能在每次啓動Web服務器時運行此操作?從PERL訪問實際上不是問題。當我試圖罐子開關,我得到如下:'$ Java的罐子myJarFile.jar中 無法加載從 myJarfile.jar' – rajeev 2012-08-07 17:01:36

+0

我已經更新了我的回答更多的細節主類清單屬性。 – 2012-08-07 17:29:42

+0

該鏈接是有幫助的。 TY。 – rajeev 2012-08-07 17:58:38

相關問題