在哪里把jar文件放在apache中?以及如何从Perl访问它?
我的网站托管在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
将“-jar”标志添加到“java”的实验。
假设“jar”文件创建独立进程,您可以通过将启动命令添加到/etc/rc.local来将Java进程设置为在启动时启动。如果这是一项重要的服务,您还需要监控它以确保它正在运行,并准备好手动停止并启动它。如果您检测到它已挂起或未运行,您可能还会考虑自动重新启动。
至于从Perl访问它,你需要从那个人那里得到文档。我期望它可以在一个端口上运行,或者创建一个你可以连接的套接字。无论哪种情况,它都不应该是一个Java应用程序。 Perl的连接端口或套接字的标准方法将适用。
关于Classpath,我建议你阅读一些documentation for Classpath,如果你还没有。如果对最佳版本有疑问,请询问您的JAR文件提供程序。
另见:
的Tx。我读了这个线程。我不确定:classpath变量在哪里?我如何设置它?我需要在Apache中做什么(如果我必须在Apache配置中执行任何操作)才能在每次启动Web服务器时运行此操作?从PERL访问实际上不是问题。当我试图罐子开关,我得到如下:'$ Java的罐子myJarFile.jar中 无法加载从 myJarfile.jar' – rajeev 2012-08-07 17:01:36
我已经更新了我的回答更多的细节主类清单属性。 – 2012-08-07 17:29:42
该链接是有帮助的。 TY。 – rajeev 2012-08-07 17:58:38