小编Dco*_*tez的帖子

在 Intellij gradle 项目中运行主类时出现 ClassNotFoundException

当我尝试使用 IDEA Intellij 选项中的运行配置在我的 gradle 项目中运行main方法时,我收到如下异常:

15:12:03: Executing external task 'run'...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/GsonBuilder
    at pl.edu.agh.flowshop.utils.ConfigReader.getMachinesConfig(ConfigReader.java:46)
    at pl.edu.agh.flowshop.utils.ConfigReader.createModel(ConfigReader.java:30)
    at pl.edu.agh.flowshop.Experiment.main(Experiment.java:25)
Caused by: java.lang.ClassNotFoundException: com.google.gson.GsonBuilder
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more
Run Code Online (Sandbox Code Playgroud)

这让我很困扰,因为如果我只是从相同的配置创建可运行的 jar,一切都会正常工作。我尝试过刷新 gradle 项目以及“无效缓存/重新启动”选项,但没有一个有帮助。

我的 build.gradle 文件:

group 'pl.edu.agh'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'application'

sourceCompatibility = 1.7
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
sourceSets.main.java.srcDirs = ['src/main/java']
mainClassName = 'pl.edu.agh.flowshop.Experiment'

repositories {
    mavenCentral()
    flatDir …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea gradle

5
推荐指数
0
解决办法
1401
查看次数

Spring:通用注入不起作用

在我的项目中,我有以下存储库结构:

public interface IRepository<T> { ... }

public abstract class AbstractRepository<T> implements IRepository<T> { ... }

@Repository
public class ARepository extends AbstractRepository<A>
    implements IRepository<A> { ... }  // added line 


@Repository
public class BRepository extends AbstractRepository<B>
    implements IRepository<B> { ... }  // added line 


@Repository
public class CRepository extends AbstractRepository<C>
    implements IRepository<C> { ... }  // added line 
Run Code Online (Sandbox Code Playgroud)

现在我想将它们注入到适当的服务中,如下所示:

public class MyServiceImpl implements MyService {

    @Autowire
    IRepository<A> arepository;

    ...
}
Run Code Online (Sandbox Code Playgroud)

它编译得很好,但是当 Spring 上下文开始时,我收到以下错误No qualifying bean of type 'some.package.IRepository<?>' available: …

java generics spring dependency-injection

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