如果所有大写字母都是Gradle,java就不能生成一个工作jar文件?
我花了一点时间学习了一种艰难的方法,即如果目录(以及jar文件)被标记为像这样的东西,Gradle就无法生成一个工作的jar文件
有人知道这是为什么吗?我刚开始学Java,想知道为什么。我听说在包装上贴上大写字母标签也是不好的做法
编辑:
如果目录都是caps,我会得到Error: Could not find or load main class src.main.java.HelloWorld
,但是如果它被标记为某物like_this
,它会工作得非常好
编辑:
修复标签后,我的目录结构仅来自一个教程,但它是:
alexanders-mbp:VALID_JAVA alexanderkleinhans$ tree
.
├── build
│ ├── classes
│ │ └── main
│ │ └── net
│ │ └── petrikainulainen
│ │ └── gradle
│ │ └── HelloWorld.class
│ ├── dependency-cache
│ ├── libs
│ │ └── VALID_JAVA.jar
│ └── tmp
│ ├── compileJava
│ └── jar
│ └── MANIFEST.MF
├── build.gradle
└── src
└── main
└── java
└── net
└── petrikainulainen
└── gradle
└── HelloWorld.java
将目录更改为something_else
并重新构建,可以使一切正常。顺便说一句,没有构建错误
编辑:
我当时正在跟踪this,但无法让它工作,所以我最终克隆了发现问题的git-repo
要跑,我愿意
gradle assemble
gradle build
java -jar build/library/VALID_JAVA.jar
(有效的_JAVA是目录名,因此是jar文件名。)
# 1 楼答案
看起来您试图启动
src.main.java.HelloWorld
,但如果查看GIT存储库中的源代码,则完全限定的类名是net.petrikainulainen.gradle.HelloWorld
(它也与您的目录结构相匹配)要启动应用程序,请使用
另外请注意,根据GIT存储库中的描述,gradle构建创建了一个可运行的jar文件,您可以像这样启动它