java.lang.ClassNotFoundException maven

java.lang.ClassNotFoundException maven,java,windows,maven,intellij-idea,Java,Windows,Maven,Intellij Idea,在maven project Intellij Idea中,我得到了java.lang.ClassNotFoundException,因为我试图创建一个需要一些外部库的类的对象 public HelloWorldController() { service = new FileService(); products.add(new Product("hello")); products.add(new Product("world")); } 没有服务,一切都能完美工作

在maven project Intellij Idea中,我得到了java.lang.ClassNotFoundException,因为我试图创建一个需要一些外部库的类的对象

public HelloWorldController() {
    service = new FileService();
    products.add(new Product("hello"));
    products.add(new Product("world"));
}
没有服务,一切都能完美工作=新文件服务;,下面是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);
    }
}
IRODSAccount、IRODSFileSystem和其他类似的类都是从外部JAR获得的,我将这些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
在maven项目中,一切都很好,但使用的JAR不同,我没有得到java.lang.ClassNotFoundException。 向pom.xml文件添加依赖项并没有解决我的问题,我从以前的项目中复制了以下内容:

        <dependency>
          <groupId>org.irods.jargon</groupId>
          <artifactId>jargon-httpstream</artifactId>
          <version>${jargon.version}</version>
      </dependency>
但是,不幸的是,在lane${jargon.version}jargon.version没有被识别为正确的语句。

因为根据目标,您需要在配置中包含该节,以便包含整个项目模块类路径

然而,似乎出于某种原因,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>   

如果你去掉标签怎么办?Maven将采用默认版本。或者声明一个属性,该属性的名称和正确的版本号为value您说您从以前的项目复制了依赖项。您知道行话httpstream依赖项的jar所在的位置吗?Maven不会神奇地找到这个jar,除非它托管在Central上,我不相信它是这样。您在属性部分设置了${jargon.version}吗?org.irods行话3.3.3-beta1@Pablo,不幸的是,该版本是必需的,我正在试图找到一个正确的版本号。我将版本更改为3.3.5-SNAPSHOT,它成功了,这是一个解决方案