繁体   English   中英

java.lang.ClassNotFoundException maven

[英]java.lang.ClassNotFoundException maven

在Maven项目(Intellij Idea)中,我有java.lang.ClassNotFoundException因为我试图创建需要一些外部库的类的对象。

public HelloWorldController() {
    service = new FileService();
    products.add(new Product("hello"));
    products.add(new Product("world"));
}

没有service = new FileService();一切都能完美service = new FileService(); ,这是FileService类:

public class FileService {

  public FileService()
  {
    irodsAccount = new IRODSAccount("192.168.6.128",1247,"rods","rods","","tempZone","demoResc");

    try {
        irodsFileSystem = new IRODSFileSystem();
    }
    catch (JargonException ex) {
    }
    try {
        this.dataTransferOps = irodsFileSystem.getIRODSAccessObjectFactory().getDataTransferOperations(irodsAccount);
    }
    catch (JargonException ex) {
    }

  }

  private String targetIrodsFileAbsolutePath;

  private IRODSAccount irodsAccount;

  private IRODSFileSystem irodsFileSystem;

  private TransferControlBlock transferControlBlock;

  private DataTransferOperations dataTransferOps = null;

  public IRODSFile getIRODSFileForPath(String irodsFilePath) throws Exception {
    if (irodsFilePath == null || irodsFilePath.isEmpty()) {
        throw new Exception("null or empty irodsFilePath");
    }
    return irodsFileSystem.getIRODSFileFactory(irodsAccount).instanceIRODSFile(irodsFilePath);
    }
}

IRODSAccountIRODSFileSystem和其他类似的类是从我连接到项目(添加的模块)的外部jar中获得的,但是在运行我的项目后,我会得到以下内容:

Caused by: java.lang.ClassNotFoundException: org.irods.jargon.core.exception.JargonException
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
    ... 62 more

不能在具有相同jar的maven项目中正常工作(我没有得到java.lang.ClassNotFoundException )。 pom.xml文件添加依赖项并不能解决我的问题,我从以前的项目中复制了此代码:

        <dependency>
          <groupId>org.irods.jargon</groupId>
          <artifactId>jargon-httpstream</artifactId>
          <version>${jargon.version}</version>
      </dependency>

但是,不幸的是,在车道<version>${jargon.version}</version> jargon.version无法识别为正确的语句。

因为根据exec:exec目标Maven文档,您需要在配置中包含<\\ classpath>节,才能包含整个项目模块的类路径。

但是,由于某种原因,看来Maven正在使用完全(且正确配置)的类路径运行程序。

为了深入研究问题,我将使用-X命令行参数运行Maven并仔细扫描调试输出,直到找到运行的确切命令为止。 然后,我尝试从同一目录运行它,确保使用的是相同的Java安装,并查看其是否有效。

 <version>${jargon.version}</version>

在中添加正确的版本

   <properties>
    <jargon.version>2.4.1-SNAPSHOT<jargon.version>
    </properties>

在您的pom文件中或直接

<version>2.4.1-SNAPSHOT</version>   

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM