相关疑难解决方法(0)

尝试运行.jar时"无效的签名文件"

我的java程序打包在一个jar文件中,并使用外部jar库,bouncy castle.我的代码编译得很好,但是运行jar会导致以下错误:

线程"main"中的异常java.lang.SecurityException:Manifest主要属性的签名文件摘要无效

我用谷歌搜索了一个多小时寻找解释,发现很少有价值.如果有人以前看过这个错误并且可以提供一些帮助,我将不得不承担责任.

java jar executable-jar

434
推荐指数
11
解决办法
23万
查看次数

是什么导致java.lang.IncompatibleClassChangeError?

我将Java库打包为JAR,java.lang.IncompatibleClassChangeError当我尝试从中调用方法时,它会抛出很多s.这些错误似乎是随机出现的.什么类型的问题可能导致此错误?

java runtime-error jar binary-compatibility

212
推荐指数
5
解决办法
28万
查看次数

什么是胖JAR?

我听说有人说他们创建了一个胖JAR并进行部署.他们究竟是什么意思?

java jar uberjar

121
推荐指数
4
解决办法
6万
查看次数

构建和部署Clojure应用程序的最佳实践:好的教程?

我是Clojure的新手,我开始尝试构建应用程序.

到目前为止,我所看到的有关编译Clojure程序的教程的所有内容都涉及交互性.例如,"加载REPL并键入(加载文件"this-or-that")以运行.这很好,但这还不够.

我已经习惯了C语言或Delphi等语言的编辑 - 编译 - 运行习惯,我本能地驱动编辑,然后点击"Mx编译".

问题是"lein uberjar",我理解相当于"make",即使对于一个你好的世界也很难执行.因此,我将不得不弄清楚这种"交互式开发"的东西是如何工作的,停止使用像它快速制作的超级发布,并且只在一天结束时保存它.

我在构建时注意到的另一件事(使用lein uberjar)是我正在处理的小GUI应用程序在编译过程中弹出帧,就像它们在编译时执行一样.这对我来说似乎有点违反直觉; 它并不像我想象的那样类似于"制造".

我知道Lisp的开发方式是在REPL中交互式工作,我并不想改变它:我想适应这种生活方式.不幸的是,我没有看到关于如何这样做的文档形式.例如,如何重置机器的当前状态.只是继续编译各个片段而不能进行某种重置似乎有点麻烦.

我在Clojure(和Lisp)上看到的大多数教程似乎都专注于在REPL中进行黑客攻击.应用程序部署的最佳实践对我来说仍然是一个谜.我的用户只是用户; 他们不会成为将文件加载到REPL的开发人员.

所以这是我的问题:任何有关构建Clojure应用程序的整个过程(包括部署)的良好信息或教程的资源?

(注意:我已经安装并运行了所有先决条件(例如Emacs,Slime,Leiningen等),所以这不是一个问题).

lisp deployment clojure leiningen

47
推荐指数
2
解决办法
7656
查看次数

使用maven-assembly-plugin创建两个可执行的jar

我有一个Maven项目,我想从中创建两个可执行的jar文件.一个将由用户以交互方式使用,另一个将作为预定作业运行,该作业读取前者生成的日志文件.最后,我希望除了MANIFEST.MF文件中的Main-Class属性之外,两个jar文件是相同的.

我正在使用maven-antrun-plugin创建一个可执行jar,这似乎工作正常,直到我尝试通过引入Maven配置文件创建第二个jar文件.我的POM文件的相关部分如下所示:

<profiles>
    <profile>
        <id>publisher</id>
        <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                ...
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <finalName>${project.artifactId}</finalName>
                        <archive>
                            <manifest>
                                <mainClass>fully.qualified.path.Publisher</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>logReader</id>
        <build>
            <finalName>${project.artifactId}</finalName>
            <plugins>
                ...
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <finalName>${project.artifactId}-logReader</finalName>
                        <archive>
                            <manifest>
                                <mainClass>fully.qualified.path.LogReader</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

实际上,两者之间的唯一区别是插件中定义的"finalName"和"mainClass"元素.

当我尝试在两个配置文件上执行mvn:package时(顺便说一句,我使用IntelliJ IDEA),我得到两个.jar文件,但是一个是正确的,另一个是不正确的."正确"的包含所有依赖项和有效的MANIFEST.MF文件."不正确"的一个不包含依赖项,MANIFEST.MF文件缺少我需要的"Main-Class"属性,以使其可执行.

我发现,如果我只运行一个配置文件或另一个配置文件,它工作正常但是,如果我尝试一次执行两个配置文件,它会失败.我的日志中也有以下注释,但我必须承认我并不完全理解他们的意思:

[INFO] Building jar: .../target/publisher.jar
...
[INFO] …
Run Code Online (Sandbox Code Playgroud)

java maven maven-assembly-plugin

28
推荐指数
1
解决办法
2万
查看次数

你应该在客户端jar中提供依赖库吗?

我们为其他内部应用程序提供了一个客户端jar,以连接到我们的应用程序的REST API.我们的API依赖于一些标准的Jakarta库.将这些JAR文件包含在我们的客户端jar文件中是最佳做法吗?或者您只记录依赖项,并由客户确保他们的类路径上有这些jar?

java client-library

15
推荐指数
2
解决办法
4952
查看次数

什么是阴影罐?uber jar和shaded jar之间有什么区别/相似之处?

你能帮忙解释什么是阴影罐,有什么maven-shade-plugin用?什么是超级罐子.

java maven maven-shade-plugin

14
推荐指数
1
解决办法
6860
查看次数

使用JarJar重新打包工具

我已经将Web应用程序部署到Google应用程序引擎,而我的Web服务使用了jersey 1.14框架.当我尝试在GAE上使用或调用Web服务时,我得到了一个java.lang.IncompatibleClassChangeError:实现类.我四处搜索并意识到,球衣1.14取决于asm 3.1和谷歌应用程序引擎使用asm 4.0并意识到我必须使用JarJar打包依赖关系来解决这个问题,但我不知道如何做到这一点与JarJar.我发现的教程非常神秘,面向体验程序员.所以有人可以发布一个面向初学者的教程,或者指导我完成解决这个问题的步骤.

java google-app-engine jersey

9
推荐指数
2
解决办法
5970
查看次数

使用Maven打包和运行Scala Spark项目

我在Scala中编写了一个使用Spark的应用程序.我正在使用Maven打包应用程序,并在构建"超级"或"胖"jar时遇到问题.

我面临的问题是运行应用程序在IDE内运行正常,或者如果我提供非超级jar版本的依赖项作为java类路径,但如果我将uber jar作为uber jar,它就不起作用类路径,即

java -Xmx2G -cp target/spark-example-0.1-SNAPSHOT-jar-with-dependencies.jar debug.spark_example.Example data.txt 
Run Code Online (Sandbox Code Playgroud)

不起作用.我收到以下错误消息:

ERROR SparkContext: Error initializing SparkContext.
com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.version'
    at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:145)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:151)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
    at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206)
    at akka.actor.ActorSystem$Settings.<init>(ActorSystem.scala:168)
    at akka.actor.ActorSystemImpl.<init>(ActorSystem.scala:504)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:141)
    at akka.actor.ActorSystem$.apply(ActorSystem.scala:118)
    at org.apache.spark.util.AkkaUtils$.org$apache$spark$util$AkkaUtils$$doCreateActorSystem(AkkaUtils.scala:122)
    at org.apache.spark.util.AkkaUtils$$anonfun$1.apply(AkkaUtils.scala:54)
    at org.apache.spark.util.AkkaUtils$$anonfun$1.apply(AkkaUtils.scala:53)
    at org.apache.spark.util.Utils$$anonfun$startServiceOnPort$1.apply$mcVI$sp(Utils.scala:1991)
    at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:160)
    at org.apache.spark.util.Utils$.startServiceOnPort(Utils.scala:1982)
    at org.apache.spark.util.AkkaUtils$.createActorSystem(AkkaUtils.scala:56)
    at org.apache.spark.rpc.akka.AkkaRpcEnvFactory.create(AkkaRpcEnv.scala:245)
    at org.apache.spark.rpc.RpcEnv$.create(RpcEnv.scala:52)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:247)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:188)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:267)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:424)
    at debug.spark_example.Example$.main(Example.scala:9)
    at debug.spark_example.Example.main(Example.scala)
Run Code Online (Sandbox Code Playgroud)

我非常感谢帮助理解我需要添加到pom.xml文件中的内容以及为什么我需要添加它以使其工作.

我在线搜索并找到了以下资源,我尝试过(参见pom),但无法开始工作: …

scala maven akka apache-spark

7
推荐指数
1
解决办法
5305
查看次数

Maven:如何将我的外部jar包含到构建可执行jar中

我正在写Spring应用程序,我有两个外部罐子.它在IDE中工作,但是当我用maven构建可执行jar时,它失败了,错误java.lang.NoClassDefFoundError:到我的外部jar.我用Google搜索,但我仍然不知道该怎么做.请帮我.我对pom文件的依赖是:

<dependency>
            <groupId>com.myapp.myappawsprovider</groupId>
            <artifactId>MyAppProvider</artifactId>
            <version>1.0.0</version>
            <scope>system</scope>
            <systemPath>/Users/Projects/Java/MyApp/MyAppProvider/target/MyAppProvider Provider-1.0.0.jar</systemPath>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

我用男士包装来构建它.

java spring jar maven

3
推荐指数
1
解决办法
4249
查看次数

Maven部署包并上传到AWS-Lambda

我在将maven部署包上传到Amazon s3时遇到了问题.

从Eclipse,我能够成功生成.jar文件,但是我在上传到服务器时遇到了问题.

这是我的Java代码:

package main.java.mavantestproj;

import java.util.Map;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.lambda.runtime.Context;

public class LambdaFunctionHandler {


    public String handleRequest(Map<String,Object> input, Context context) {
        context.getLogger().log("Input: " + input);

        AmazonDynamoDBClient client = new AmazonDynamoDBClient(new ProfileCredentialsProvider("mytest"));

        client.setRegion(com.amazonaws.regions.Region.getRegion(Regions.US_WEST_2));

        client.describeTable("ProductCatalog");
        // TODO: implement your handler
        return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

在目标文件夹中,我有2个罐子.即lambda-java-example-1.0-SNAPSHOT.jar&original-lambda-java-example-1.0-SNAPSHOT.jar

在这第一个jar是35MB,第二个jar是4KB.我没有得到哪一个上传到S3来运行我的lambda函数.

java amazon-s3 amazon-web-services maven aws-lambda

2
推荐指数
1
解决办法
5246
查看次数

如何在zip文件中打包多模块?

我有一个多模块项目。每个模块都打包在自己的/ target文件夹中的jar / war文件中。

我想获取每个模块的jar / war文件和一些配置文件,然后将所有内容放入一个zip文件中。

怎么做?我尝试使用Assembly插件,但到目前为止,我所能做的就是将每个模块的zip压缩到各自的/ target文件夹中,因此非常没用^^

maven maven-assembly-plugin

2
推荐指数
1
解决办法
1476
查看次数