Java 如何在Netbeans中调试具有本机依赖项的Gradle项目?

Java 如何在Netbeans中调试具有本机依赖项的Gradle项目?,java,netbeans,gradle,Java,Netbeans,Gradle,我有一个项目需要运行本机库。 我正在使用Gradle支持Netbeans插件 apply plugin: "java" apply plugin: "application" apply plugin: "eclipse" sourceCompatibility = 1.7 mainClassName = "com.myPackage.MainClass" if (!project.hasProperty('mainClass')) { ext.mainClass = mainCl

我有一个项目需要运行本机库。 我正在使用Gradle支持Netbeans插件

apply plugin: "java"
apply plugin: "application"
apply plugin: "eclipse"

sourceCompatibility = 1.7

mainClassName = "com.myPackage.MainClass"

if (!project.hasProperty('mainClass')) {
    ext.mainClass = mainClassName
}

repositories {
    mavenCentral()

    maven {
        url "http://teleal.org/m2"
    }
}

dependencies {
    compile group: "com.esotericsoftware.kryo", name: "kryo", version: "2.23.0"
    compile group: "net.java.jinput", name: "jinput", version: "2.0.5"
    compile group: "org.jcraft", name: "jorbis", version: "0.0.17"
    compile group: "org.jdom", name: "jdom2", version: "2.0.5"
    compile group: "org.lwjgl.lwjgl", name: "lwjgl", version: "2.9.0"
    compile group: "org.lwjgl.lwjgl", name: "lwjgl_util", version: "2.9.0"
    compile group: "org.teleal.cling", name: "cling-core", version: "1.0.5"
    compile group: "org.teleal.cling", name: "cling-support", version: "1.0.5"
    compile group: "xpp3", name: "xpp3", version: "1.1.4c"

    compile files("./lib/jars/kryonet-2.21.jar")
    compile files("./lib/jars/slick.jar")
    compile files("./lib/jars/slick-util.jar")
    compile files("./lib/jars/TWL.jar")
}

jar {
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
        configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
    }

    manifest {
        attributes "Main-Class": project.mainClassName
    }
}

run {
    configureRun(it)
}

task(debug, dependsOn: 'classes', type: JavaExec) {
    configureRun(it)
    classpath = sourceSets.main.runtimeClasspath
}

void configureRun (def task){
    main = mainClass
    task.systemProperty "java.library.path", "./lib/native/"
}
应用程序将在运行模式下正常启动,但调试模式会产生以下错误:

 FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':debug'.
> No main class specified

我假设您使用的是应用程序插件,这就是为什么运行任务的配置就足够了。也就是说,最有可能的情况是:

if (!project.hasProperty('mainClass')) {
    ext.mainClass = mainClassName
}

run {
    configureRun(it)
}

task(debug, dependsOn: 'classes', type: JavaExec) {
    configureRun(it)
    classpath = sourceSets.main.runtimeClasspath
}

void configureRun(def task) {
    main = mainClass
    task.systemProperty "java.library.path", "./lib/native/"
}
任务(debug,dependsOn:'classes',类型:JavaExec){

看起来您是在添加操作而不是配置任务,任务上的所有配置都发生得太晚,即在执行时

要么这样,要么确保你的主屏幕(你必须在某个地方有一个,对吗?我是新手)看起来像:

公共静态void main(字符串[]args)引发异常


我的研究将我带到了这里:(这个网站可能会帮助你处理gradle)

这抛出了以下错误:
任务执行失败:debug'.>没有指定主类
而不是main=mainClass,它应该是task.main=mainClass吗?在类似的情况下,这仍然不能解决我的问题。好奇它是否解决了你的问题。