首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.ClassNotFoundException maven

java.lang.ClassNotFoundException maven
EN

Stack Overflow用户
提问于 2014-07-29 08:08:02
回答 2查看 665关注 0票数 0

在maven项目(Intellij )中,我获得了java.lang.ClassNotFoundException,因为我试图创建一个类的对象,它需要一些外部库。

代码语言:javascript
复制
public HelloWorldController() {
    service = new FileService();
    products.add(new Product("hello"));
    products.add(new Product("world"));
}

没有service = new FileService();,一切都很完美,下面是FileService类:

代码语言:javascript
复制
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和其他类似的类是从外部jars获得的,我将这些jars连接到项目(添加了模块),但是在运行我的项目之后,我有如下所示:

代码语言:javascript
复制
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

在使用相同jars的maven项目中,一切都很好(我没有得到java.lang.ClassNotFoundException)。将依赖项添加到pom.xml文件并不能解决我的问题,我从以前的项目中复制了以下内容:

代码语言:javascript
复制
        <dependency>
          <groupId>org.irods.jargon</groupId>
          <artifactId>jargon-httpstream</artifactId>
          <version>${jargon.version}</version>
      </dependency>

但不幸的是,在莱恩,<version>${jargon.version}</version> jargon.version没有被认为是正确的陈述。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-29 08:24:01

代码语言:javascript
复制
 <version>${jargon.version}</version>

中添加版本的右侧

代码语言:javascript
复制
   <properties>
    <jargon.version>2.4.1-SNAPSHOT<jargon.version>
    </properties>

在您的pom文件或直接

代码语言:javascript
复制
<version>2.4.1-SNAPSHOT</version>   
票数 0
EN

Stack Overflow用户

发布于 2014-07-29 08:21:30

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

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

为了弄清问题的根源,我使用-X命令行参数运行Maven,并仔细扫描调试输出,直到找到它运行的确切命令为止。然后,我尝试从同一个目录运行它,确保我使用的是相同的Java安装,并查看它是否工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25010812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档