Gradle,错误找不到或加载主类'test.Main'



我在我的一个项目中实现了Gradle。我使用Netbeans 8.02与gradle插件。

结构是这样的,资源位于jgli/src/main/java/下,资源位于jgli/src/main/resources/

主类是jgli/src/main/java/test/Main.java

如果我在ide中运行它,它在windows上运行,在linux上崩溃。这就是为什么我现在正试图通过控制台运行它:

java -jar jgli.jar

但是我一直得到:

无法找到或加载主类的测试。主要的

这是我的build.gradle

apply plugin: 'java'
sourceCompatibility = '1.8'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
// NetBeans will automatically add "run" and "debug" tasks relying on the
// "mainClass" property. You may however define the property prior executing
// tasks by passing a "-PmainClass=<QUALIFIED_CLASS_NAME>" argument.
//
// Note however, that you may define your own "run" and "debug" task if you
// prefer. In this case NetBeans will not add these tasks but you may rely on
// your own implementation.
if (!hasProperty('mainClass')) {
    ext.mainClass = ''
}
repositories {
    mavenCentral()
    // You may define additional repositories, or even remove "mavenCentral()".
    // Read more about repositories here:
    //   http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:repositories
}
dependencies {
    // TODO: Add dependencies here ...
    // You can read more about how to add dependency here:
    //   http://www.gradle.org/docs/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies
    testCompile group: 'junit', name: 'junit', version: '4.10'
    compile 'org.jogamp.jogl:jogl-all-main:2.3.2'
    compile 'org.jogamp.jogl:nativewindow-main:2.3.2'
    compile 'org.jogamp.jogl:newt-main:2.3.2'
    compile 'org.jogamp.gluegen:gluegen-rt-main:2.3.2'
}
jar {
    manifest {
        attributes 'Main-Class': 'test.Main'
    }
}

我只是修改了dependecies部分,并增加了manifest部分。

我试图添加'test.Main'到ext.mainClass,但它改变了什么…

你可以在这里下载jar。

这是我的MANIFEST.MF:

Manifest-Version: 1.0
Main-Class: test.Main

Main.class被正确地放置在jar中。Main.java有包声明package test;

尝试也

apply plugin: 'application'
mainClassName = 'test.Main'

没有成功. .

我错过了什么?

我刚刚找到了你的git存储库和你的Main类的来源,似乎它实现了一些接口,这是在你的依赖项中提供的:

import com.jogamp.newt.event.KeyListener;
import com.jogamp.opengl.util.GLEventListener;
public class Main implements GLEventListener, KeyListener {
  ...

来自你的一些依赖库:

compile 'org.jogamp.jogl:jogl-all-main:2.3.2'
compile 'org.jogamp.jogl:nativewindow-main:2.3.2'
compile 'org.jogamp.jogl:newt-main:2.3.2'
compile 'org.jogamp.gluegen:gluegen-rt-main:2.3.2'

在这种情况下,当你运行Main类时,你的依赖项必须在你的类路径中。尝试提供-cp选项来指向可以找到依赖项的路径。

通常在构建文件中设置main-class如下:

mainClassName = 'package.MainClassName'

是否作为参数传递?-> hasProperty然后你必须像这样运行你的构建:gradle -PmainClass=MyClass build

相关内容

  • 没有找到相关文章

最新更新