Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gradlefiletree包含的JAR文件库是’;Java代码无法看到它_Java_Jar_Intellij Idea_Dependencies_Gradle - Fatal编程技术网

使用gradlefiletree包含的JAR文件库是’;Java代码无法看到它

使用gradlefiletree包含的JAR文件库是’;Java代码无法看到它,java,jar,intellij-idea,dependencies,gradle,Java,Jar,Intellij Idea,Dependencies,Gradle,我使用IntelliJ IDEA的Gradle项目模板创建了一个新的Java项目,我正在尝试设置一个库,以便我的项目可以使用它。我将库JAR文件保存到项目中的/libs/frink-2014-02-17.JAR。在我的build.gradle的dependencies部分中,我编写了运行时文件树(dir:'libs',include:'*.jar')。但是我的Java代码看不到这个库。当我尝试构建项目时,编译器抱怨import frink.parser.frink引用不存在的包 如何修复构建错误

我使用IntelliJ IDEA的Gradle项目模板创建了一个新的Java项目,我正在尝试设置一个库,以便我的项目可以使用它。我将库JAR文件保存到项目中的
/libs/frink-2014-02-17.JAR
。在我的
build.gradle
dependencies
部分中,我编写了
运行时文件树(dir:'libs',include:'*.jar')
。但是我的Java代码看不到这个库。当我尝试构建项目时,编译器抱怨
import frink.parser.frink引用不存在的包

如何修复构建错误,以便在Java项目中使用Frink库

细节 图书馆在建。Frink是,所以我重命名了它,使其在文件名(如下)中具有版本,并将其放在项目根目录下的
libs
文件夹中。然后,我从中复制了以下代码行,试图将所有JAR文件包含在我创建的
libs
目录中:

运行时文件树(目录:“libs”,包括:“*.jar”)
但当我“创建项目”或运行
/gradlew build
,我会遇到以下错误:

/…/frink soulver/src/main/java/main.java:1:package frink.parser不存在
导入frink.parser.frink;
^     
/…/frink soulver/src/main/java/main.java:5:找不到符号
符号:弗林克级
地点:班主
Frink interp=新Frink();
^                
/…/frink soulver/src/main/java/main.java:5:找不到符号
符号:弗林克级
地点:班主
Frink interp=新Frink();
^
/…/frink soulver/src/main/java/main.java:11:package frink.errors不存在
}捕获(frink.errors.frink评估异常费){
^
4个错误
:compileJava失败
我的IDE在编译之前打开并查看
Main.java
时会突出显示相同的错误

我在
Main.java
中的代码,包括
import
,仅仅是。并且指示在JAR文件中确实应该有一个
frink.parser
包。因此,我不是在要求一个不存在的包

我曾尝试在
build.gradle
中将
runtime
更改为
compile
,但这并没有产生任何影响

当我在IDEA中打开“项目结构…”并转到库部分时,该列表中缺少Frink JAR文件。该列表包含“Gradle:guava-12.0”、“Gradle:hamcrest-core-1.3”、“Gradle:jsr305-2.0.3”和“Gradle:junit-4.11”.我不想只单击+按钮添加使用IDEA的库,因为我认为以两种不同的方式包含库会让人困惑

是的,但看起来我使用的
fileTree
方式与这些结果中的方式相同

我对Gradle、IDEA和从头开始设置Java项目还不熟悉。因此,如果我的项目设置看起来很奇怪或不标准,我愿意接受更正。例如,如果有更好的方法包括Frink,而不是将其JAR文件复制到项目中的文件夹中,我可以这样做

详细项目内容 我的完整
build.gradle

apply插件:“java”
sourceCompatibility=1.6
版本='1.0'
存储库{
mavenCentral()
}
依赖关系{
testCompile组:“junit”,名称:“junit”,版本:“4.11”
/*对这个问题进行注释,因为没有这个错误仍然会发生
// http://code.google.com/p/guava-libraries/wiki/UseGuavaInYourBuild
运行时组:“com.google.guava”,名称:“guava”,版本:“12.0”
// http://stackoverflow.com/questions/10007994/why-do-i-need-jsr305-to-use-guava-in-scala/10013226#10013226
//如果我决定使用这些注释,我将包含此依赖项
编译组:“com.google.code.findbugs”,名称:“jsr305”,版本:“2.0.3”
*/
运行时文件树(目录:“libs”,包括:“*.jar”)
}
我的项目文件树,由
生成:

。
├── 建造
│   ├── 班级
│   │   └── 主要的
│   └── 依赖缓存
├── 格雷德尔先生
├── frink-soulver.iml
├── 格拉德尔
│   └── 包装纸
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── 格拉德卢
├── 格拉德勒蝙蝠
├── 自由基
│   └── frink-2014-02-17.jar
├── 出来
│   ├── 生产
│   │   └── 弗林克·索尔弗
│   └── 测试
│       └── 弗林克·索尔弗
└── src
├── 主要的
│   ├── JAVA
│   │   └── 主类
│   └── 资源
└── 测试
├── JAVA
└── 资源
我的完整
Main.java

import frink.parser.frink;
公共班机{
公共静态void main(字符串[]args){
Frink interp=新Frink();
interp.setRestrictiveSecurity(真);
试一试{
字符串结果=interp.parseString(“2+2”);
系统输出打印项次(结果);
}捕获(frink.errors.frink评估异常费){
//你想做什么就做什么除了例外
}
}
}

您已将它指定为运行时的依赖项,但在编译时需要它。
尝试将依赖项规则从运行时文件树(dir:'libs',include:'*.jar')更改为编译文件('libs/MyLibrary.jar')。这对我很有用


我已经在Android bug tracker上创建了,请随意评论。

不是这样。我尝试将
运行时
更改为
编译
内部
build.gradle
,重新启动IDE,然后重新生成,但我仍然得到相同的四个生成错误。@RoryO'Kane:应该是这样的。请不要