相关疑难解决方法(0)

318
推荐指数
5
解决办法
78万
查看次数

尝试使用java.exe -jar运行我的jar时出现NoClassDefFoundError ...出了什么问题?

我有一个应用程序,我正在尝试将其包装到jar中以便于部署.当作为一组可从CLASSPATH访问的类运行时,应用程序编译并运行正常(在Windows cmd窗口中).但是当我在我的类中运行并尝试在同一cmd窗口中使用java 1.6运行它时,我开始获得异常:

C:\dev\myapp\src\common\datagen>C:/apps/jdk1.6.0_07/bin/java.exe -classpath C:\myapp\libs\commons -logging-1.1.jar -server -jar DataGen.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at com.example.myapp.fomc.common.datagen.DataGenerationTest.<clinit>(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

有趣的是,违规的LogFactory似乎是在commons-logging-1.1.jar中,它位于指定的类路径中.jar文件(是的,它确实存在):

C:\dev\myapp\src\common\datagen>dir C:\myapp\libs\commons-logging-1.1.jar
 Volume in drive C is Local Disk
 Volume Serial Number is ECCD-A6A7

 Directory of C:\myapp\libs

12/11/2007  11:46 AM            52,915 commons-logging-1.1.jar
           1 File(s)         52,915 bytes
           0 Dir(s)  10,956,947,456 bytes free
Run Code Online (Sandbox Code Playgroud)

commons-logging-1.1.jar文件的内容:

C:\dev\myapp\src\common\datagen>jar -tf C:\myapp\libs\commons-logging-1.1.jar
META-INF/
META-INF/MANIFEST.MF
org/ …
Run Code Online (Sandbox Code Playgroud)

java jar classpath executable-jar

56
推荐指数
3
解决办法
12万
查看次数

你把外部库的 .jar 文件放在哪里

这可能是一个非常愚蠢的问题。我刚刚通过将 .jar 文件添加到类路径等等,学会了如何在 Java 中使用外部库,但是您究竟将 .jar 文件保存在哪里?在有关将 .jar 文件添加到类路径的视频教程中,程序员只是将 .jar 文件保存在他的下载文件夹中。那么你可以把文件放在任何地方吗?或者是否有关于您将我应该遵守的库文件保存在何处的一般范例?

java paradigms jar

5
推荐指数
1
解决办法
7834
查看次数

我如何向Activemq发送消息

我从不工作JMS.最近我下载Activemq和从没有改变端口6161661617所有conf/activemq-*.xmlfiles.I在浏览器中运行的命令提示符,然后打开控制台页面下面的命令.

  C:\Users\Infratab Bangalore\Desktop\Queueing\apache-activemq-5.8.0\bin>activemq
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在我想给使用Java代码的消息JMSActivemq.对于这一点,我写了下面的代码.并使用Apache Tomcat server.it运行我的代码

此代码在Eclipse中实现.

package PackageName;

import java.io.IOException;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.activemq.ActiveMQConnectionFactory;

public class MessageProducer extends HttpServlet {
    @Override
    protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
        try {
            //created ConnectionFactory object for creating connection 
            ConnectionFactory factory = new ActiveMQConnectionFactory("admin", "admin", "tcp://localhost:61617");
            //Establish the connection …
Run Code Online (Sandbox Code Playgroud)

java activemq-classic jms java-ee-6

4
推荐指数
1
解决办法
2万
查看次数