2016-09-30 53 views
0

外面我按照本網頁教程:https://netbeans.org/kb/docs/javaee/entappclient.html運行企業應用程序客戶端的Netbeans

我要運行的企業應用程序客戶端在NetBeans外部。請注意,企業應用程序客戶端與Web客戶端不同,即它是應用程序客戶端。

我曾嘗試執行以下命令:

設置CLASSPATH = C:\ GenieDevelopment \的NetBeansProjects \ RemoteInterface \ EJBRemote \ DIST \ EJBRmote.jar CD C:\ Program Files文件\與GlassFish 4.0 \ GlassFish的\ BIN Appclient -client C:\的NetBeansProjects \ RemoteInterface \ ClientTest \ DIST \ ClientTest.jar

我得到的錯誤是:

Oct 04, 2016 7:59:32 PM org.glassfish.apf.impl.DefaultErrorHandler error 
SEVERE: Class [ Ltest/TestEJBRemote; ] not found. Error while loading [ class cl 
ienttest.Main ] 
Exception in thread "main" java.lang.NoClassDefFoundError: test/TestEJBRemote 
     at clienttest.Main.main(Main.java:24) 
Caused by: java.lang.ClassNotFoundException: test.TestEJBRemote 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at org.glassfish.appclient.client.acc.ACCClassLoader.findClass(ACCClassL 
oader.java:237) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     ... 1 more 

問題是什麼?遠程接口位於類路徑中。

+0

@Mr_Thorynque,你能指定正確的命令嗎? – w0051977

+2

這是不對的。 'entappclient.Main'是正確的(假設這是應用程序的主要類)。 –

+0

項目生成的jar文件的名稱是什麼,entappclient.jar? –

回答

0

classpath不考慮列出的目錄中的JAR文件。它將使用類路徑中明確給出的JAR文件,以及您列出的目錄中的.class文件;但不包括目錄中的JAR文件。如果你想獲得它包含在目錄中的JAR文件,你需要使用通配符:

java -cp "EntAppClient.jar;C:\jardirectory\*" ... 

這將包括所有目錄中的所有文件,如果這些文件是JAR文件,它會接他們所有的。

如果您希望能夠構建應用程序,然後在IDE外部署並運行它們,我強烈建議使用Maven來控制依賴關係,並允許您在一個地方構建一個包含所有依賴關係的胖JAR。稍後你會爲自己節省很多麻煩。

+0

你知道我可以運行的命令來運行這個:「Hello World」類型的項目。我無法相信它是如何來自.NET背景的困難。謝謝。 – w0051977

+0

謝謝。但是,你能指定完整的命令嗎(我已經在OP中指定了路徑)? – w0051977

+0

我編輯了這個問題。你可以看一下嗎? – w0051977

0

您需要在諸如tomcat或glassfish甚至Google AppEngine的網絡服務器中運行J2EE應用程序。通常你會生成你上傳到Web服務器的.WAR文件。在tomcat的情況下,您打開http://localhost:8080/manager/html,然後上載.war文件,然後http://localhost:8080/myapp會向您顯示您的web應用程序。

+0

企業應用程序客戶端如何? – w0051977

相關問題