我想做的是:
使用gradle和eclipse作为IDE创建可执行Jar。Jar应该包含运行所需的所有库,并且可以在docker容器中使用。
迄今为止的问题:
org.springframework.boot不包含在Jar中。
代码:
src/main/java/SampleController。JAVA
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/")
@ResponseBody
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleController.class, args);
}
}
建筑格拉德尔
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.10.RELEASE")
}
}
apply plugin: 'java-library'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
// In this section you declare where to find the dependencies of your project
repositories {
// Use jcenter for resolving your dependencies.
// You can declare any Maven/Ivy/file repository here.
jcenter()
mavenCentral()
}
dependencies {
// This dependency is exported to consumers, that is to say found on their compile classpath.
api 'org.apache.commons:commons-math3:3.6.1'
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'com.google.guava:guava:21.0'
api 'org.springframework.boot:spring-boot-starter-web'
api 'org.springframework.boot:spring-boot-starter'
// Use JUnit test framework
testImplementation 'junit:junit:4.12'
}
springBoot {
mainClass = "SampleController"
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
使用的命令:
在工作区/项目/构建/库中
java-jar项目。罐子
错误:
java : Exception in thread "main" java.lang.reflect.InvocationTargetException
At line:1 char:1
+ java -jar RSSFeedAggregator.jar
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Exception in th...TargetException:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at SampleController.main(SampleController.java:18)
... 8 more
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 9 more
说到这个,我是个新手。有人对如何解决我的问题有什么想法吗?
我想我找到了解决办法。
据我所知,当直接在eclipse中运行时,gradle api/实现会在运行时自动添加JAR。但是,在使用:bootRepackage创建fat jar时,需要显式添加运行时lib。(该程序直接在eclipse上运行良好)
runtime 'org.springframework.boot:spring-boot-starter'
runtime 'org.springframework.boot:spring-boot-starter-web'
这解决了我的问题。如果有人对这个问题有什么要补充的,我不会结束这个话题。
当我在Eclipse中单击play时,项目运行良好,但在创建了可运行的JAR文件后,按钮的就消失了。 图像存储在src文件夹中,即子文件夹images中。 我创建了图像图标 我最终为screen recorder创建了一个非常非结构化的单片代码,现在实现他所说的有点困难。 我想知道是否有一种方法,比如创建一个类或接口,将包含所有这些资源。 那么我所要做的就是导入这些静力学,在我的主类中,
11.5 创建可执行的jar文件 让我们通过创建一个能够运行在生产环境中、完全独立且可执行的jar文件来完成我们的示例。可执行jar(有时称为“fat jar”)是包含有被编译的类以及代码运行所依赖的所有jar的归档文件。 可执行的jar和Java Java没有提供任何标准的方法来加载嵌套的jar文件(即包含在一个jar文件中的jar文件)。如果您想发布一个独立的应用程序,这可能会导致问题。 为了
问题内容: 我使用eclipse创建可执行jar。它依靠外部其他罐子。 在Eclipse中,只需选择即可。 您可以创建一个可执行jar。它可以在安装了jre的任何地方执行。 但是如果我使用命令行来编译jar。 它可以生成jar。但是jar只能在产生它的目录中执行。如果我将其放入另一个目录或计算机,则会抱怨。 因此,我的问题是,如何使用命令行作为Eclipse生成可执行jar。 问题答案: jar文
我提取了一个包含xml、java类等的可执行jar文件。实际上,这个可执行jar文件是一个具有依赖关系的库。我需要修改这个库中一个类文件中的一行代码。我已经成功地编辑了类文件,现在我想把它重新打包到可执行的jar中。如何做到这一点。
问题内容: 我创建了一个Java应用程序,并且想为此应用程序创建jar文件。此应用程序通过“构建路径”>“添加外部Jar文件”导入了其他外部jar文件。我如何在具有这些外部库依赖项的Ubuntu中为此应用程序生成可执行JAR文件? 问题答案: 要在工作台中创建一个新的可运行JAR文件: 从菜单栏的“文件”菜单中,选择“导出”。 展开Java节点,然后选择Runnable JAR文件。点击下一步。
我目前正在做一个JSF项目。一切都很好。创建。war-file并部署它。 如何在NetBeans中轻松创建JAR文件?