2016-09-30 92 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