标签: classpath

log4j和java.lang.NoClassDefFoundError:org/apache/log4j/Layout

我试图让一段代码与log4j一起工作.如果我通过junit测试(ant任务)运行它,我得到正确的日志输出,一切都很好.如果我从命令行运行代码,我得到这个:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
        at uk.co.bytemark.flexnbd.Main.main(Main.java:29)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Layout
Run Code Online (Sandbox Code Playgroud)

我尝试了以下两个类路径,但都没有帮助.错误仍然存​​在.

  export CLASSPATH=/home/yann/java/apache-log4j-1.2.16/log4j-1.2.16.jar 
  export CLASSPATH=/home/yann/java/apache-log4j-1.2.16/
Run Code Online (Sandbox Code Playgroud)

即便如此

$ java -cp /home/yann/java/apache-log4j-1.2.16/log4j-1.2.16.jar -jar ./dist/lib/flexnbd-`date +%Y%m%d`.jar server ::1 12345 fileSystem
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
        at uk.co.bytemark.flexnbd.Main.main(Main.java:29)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Layout
        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)
        ... 1 more
$ ls -ld /home/yann/java/apache-log4j-1.2.16/log4j-1.2.16.jar
476K -rw-r--r-- 1 yann yann 471K Mar 31 05:16 /home/yann/java/apache-log4j-1.2.16/log4j-1.2.16.jar
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

java log4j classpath noclassdeffounderror

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

$ CLASSPATH和-cp with Java

  • 在这篇文章中,使用-jar选项忽略所有-cp和$ CLASSPATH.
  • 在这篇文章中,使用-cp选项也会忽略$ CLASSPATH.

他们有什么好的理由吗?

java jar classpath

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

为什么类路径默认为WEB-INF/classes /而不是JBoss 5.1中的WEB-INF /?

我有一段代码可以使用弹簧上下文

context =  new ClassPathXmlApplicationContext("application-context.xml");
Run Code Online (Sandbox Code Playgroud)

该文件位于WAR的"WEB-INF/application-context.xml"内.在JBoss 4.2.3中,上面的代码工作正常.在JBoss 5.1中,经过实验,似乎希望文件位于"WEB-INF/classes/application-context.xml"中.将文件移到那里之后就可以了.

我也用google搜索了很多关于VFS如何与Spring的类路径混淆的引用.

java spring classpath jboss5.x

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

让Rhino JS看Java类

我正在玩Rhino,我已经成功使用了stdlib中的Java类,但没有使用我编译的Java代码.

例如,这工作正常:

print(new java.util.Date());
Run Code Online (Sandbox Code Playgroud)

但是使用NanoHTTPD(单个.java文件,没有名称空间,相同的文件夹),我根本就没有运气:

js> new Packages.NanoHTTPD()
js: "<stdin>", line 4: uncaught JavaScript runtime exception: TypeError: [JavaPackage NanoHTTPD] is not a function, it is object.
    at <stdin>:4
Run Code Online (Sandbox Code Playgroud)

我确信这很简单.我错过了什么?

编辑:我发布它是这样的:

$ CLASSPATH=. java -jar rhino.jar
Run Code Online (Sandbox Code Playgroud)

或这个:

$ java -classpath . -jar rhino.jar
Run Code Online (Sandbox Code Playgroud)

或者我将NanoHTTPD.java移动到文件夹"./nano"中,添加package nano;到文件顶部,编译它,然后替换为".".在上面的类路径分配中使用"nano".

无论我怎么做,从翻译中我看到:

js> java.lang.System.getProperty("java.class.path")
/Users/me/blah/rhino.jar
Run Code Online (Sandbox Code Playgroud)

javascript java rhino classpath

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

"找不到符号"错误 - 即使是一个荒谬简单的例子

所以我一直试图在几个小时内解决这个问题.我已经浏览了互联网,我已经搜索了StackOverflow,我问过一些同事(我是实习生)老实说,没有人能告诉我发生了什么!我把一个非常简单的例子放在一起向你展示我在做什么(即使用简单的例子我也得到错误)

我有两个.java文件.一个是Test.java另一个是testClass.java.

//testClass.java

package test;

public class testClass {
    private int someMember=0;

    public testClass(){
        //kill me now
    }

}
Run Code Online (Sandbox Code Playgroud)

然后我有我的Test.java文件,其中包含我的main方法.(虽然在我真正的问题中我没有主方法 - 它是一个带doGet()方法的servlet )

//Test.java
package test;

public class Test {

    public static void main(String[] args) {
        testClass myTest = new testClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下内容进行编译(从Windows命令行,使用当前目录保存我的.java文件):

..java bin location..\javac testClass.java
Run Code Online (Sandbox Code Playgroud)

这非常正常,我在当前目录中获得了一个testClass.class文件.然后,我尝试使用以下内容编译Test.java文件(再次在工作目录中):

..java bin location..\javac -classpath . Test.java
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

Test.java:6: cannot find symbol
symbol : class testClass
location : class test.testClass
   testClass myTest = new …
Run Code Online (Sandbox Code Playgroud)

java symbols compilation javac classpath

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

在我的java程序中包含gson

到目前为止,我只在程序中使用了标准库.我只是制作一个简单的控制台应用程序而且我没有使用任何IDE,只是简单的文本编辑器(因为我现在不需要任何更复杂的东西).

我不知道在哪里放下我已下载的jar文件,我也不知道如何正确调用它.我读过有关包含路径的内容吗?但我不确定我是否理解.

我只是有简单的文件夹结构,如下所示:

  • 项目
    • Class.java
    • Class.class
    • GSON-2.2.1.jar

我试过这个:

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
Run Code Online (Sandbox Code Playgroud)

但我知道它不存在.

java classpath gson

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

在java中读取属性文件时发生文件未找到错误

我在包的包下创建属性文件 resources/common/configure/

然后我创建代码

    Properties prop = new Properties();

    try {
           //load a properties file
        prop.load(new FileInputStream("resources/common/configure/commonData.properties"));

           //get the property value and print it out
            System.out.println(prop.getProperty("id"));


    } catch (IOException ex) {
        ex.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

但我得到以下错误

java.io.FileNotFoundException: (The system cannot find the path specified)
Run Code Online (Sandbox Code Playgroud)

请让我知道如何获得此属性文件.

java properties classpath

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

eclipse中的.classpath内容更新

我下载了一个带有.classpath的eclipse项目,该项目包含需要更新的类条目.

这究竟是做什么的?我可以在eclipse中更改.classpath的内容吗?

我User Libraries在eclipse中打开,希望它与.classpath具有相同的内容,但它没有任何内容.

在此输入图像描述

java eclipse classpath

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

设置类路径以便在mysql和jdbc之间进行连接

我使用的程序:eclipse和mysql.

我在mysql中有一个数据库,我想在eclipse和mysql之间建立连接.

我在Eclipse中创建的项目中有一些文件夹.

我有主文件夹:testest ..我告诉你我在相关文件夹中的内容:

testest
..src
....testest
......testestservlet.java
..app engine sdk
..JRE system library
..referenced library
..war
..lib
....mysql-connector-java-5.1.22
Run Code Online (Sandbox Code Playgroud)

我更新了我的testestservlet.java:

package testest;

import java.io.IOException;
import javax.servlet.http.*;
import java.sql.*;

@SuppressWarnings("serial")
public class TestestServlet extends HttpServlet {
  public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
      resp.setContentType("text/plain");
      resp.getWriter().println("Hey, world");
      resp.getWriter().println("MySQL Connect Example.");
      Connection conn = null;
      String url = "jdbc:mysql://localhost:3306/";
      String dbName = "database_alon";
      String driver = "com.mysql.jdbc.Driver";
      String userName = "root"; 
      String password = "ADMINALON";
      try {
          Class.forName(driver).newInstance();
          conn = …
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc classpath

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

Apache Camel:从资源设置正文

基本上,我正在尝试这样做(错误的代码!):

  <camel:setBody>
    <camel:simple>resource:classpath:/myfiles/file.xml</camel:simple>
  </camel:setBody>
Run Code Online (Sandbox Code Playgroud)

你会怎么做到这一点?

干杯!

spring classpath apache-camel

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