标签: jar

在大量 .jar 文件中查找符号的 Bash 脚本

在我看来,这应该找到我正在寻找的符号。相反,它没有找到该符号。我哪里错了?我知道该符号存在于 .jar 文件之一中。

  1 ARRAY=(`find ${PWD} -name '*.jar'`);
  2 SYMBOL=$1;
  3 for i in ${ARRAY[@]};
  4 do
  5     JAR=`jar -tf $i`;
  6     GREPED=`echo ${JAR} | grep -s ${SYMBOL} | tr -d ' '`;
  7     if [ "${GREPED}" != "" ]; then
  8         echo $GREPED
  9     fi
  7 done
Run Code Online (Sandbox Code Playgroud)

也许我误解了 jar 命令选项?

假设我为了好玩而下载了 android SDK,并在上面运行了一个工具,说它找不到给定的类 com.android.email.mail.Flag。所以我运行上面的脚本:

$ ./script.sh Flag
Run Code Online (Sandbox Code Playgroud)

这应该打印出jar命令的输出。如果我想要上面的 jar 文件第 8 行

echo $i.

bash jar

0
推荐指数
1
解决办法
829
查看次数

不明白为什么我收到错误:无法从控制台找到或加载主类

我查看了本网站上的其他几个答案,试图了解为什么会发生这种情况,但我不明白我做错了什么。

我正在尝试开始使用 iText 和 .jar 文件。我将 iText .jar 文件下载并解压缩到桌面上的一个文件夹中:Desktop\Java\itext-5.4.4\"jar files here"

然后我去了以下网站:

http://tutorials.jenkov.com/java-itext/getting-started.html

并将代码复制到记事本中。它看起来像这样:

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.FileOutputStream;
import java.io.FileNotFoundException;

/**

 */
public class HelloWorldExample {

    public static void main(String[] args) {

        Document document = new Document();

        try {
            PdfWriter.getInstance(document,
                new FileOutputStream("HelloWorld.pdf"));

            document.open();
            document.add(new Paragraph("A Hello World PDF 

document."));
            document.close(); // no need to close 

PDFwriter?

        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

我将桌面上的文件保存为 HelloWorldExample.java

然后我使用以下命令编译我的代码: …

java jar classpath itext

0
推荐指数
1
解决办法
4879
查看次数

Java“jar”函数在哪里

我希望jar [options] [name] [files]从命令行使用一些 Java 代码制作一个 jar 文件,但无法识别。

根据Oracle Jar 是 JDK 的一部分。我安装了 7 和 8。如何运行 jar 函数?

我没有 Oracle 文档显示的 C:/Java。我试过从 JDK 目录中以管理员权限运行 jar。

我还没有输入参数,想检查一下我至少可以先找到 jar 函数。

从 JDK 目录运行 jar 从 JDK 目录 (1.8) 运行 jar http://puu.sh/eoer7/4fcd0ce63c.png 从 System32 运行 jar http://puu.sh/eoe3X/076d79b4e4.png

java jar

0
推荐指数
1
解决办法
111
查看次数

在 lib 文件夹中添加 jars 文件和在类路径中设置它之间的区别

你能解释一下在 lib 文件夹中添加 jars 和将 jars 添加到 classpath 的区别吗?

两者都只是添加罐子的一种方式(任何人都会工作)还是有什么区别?我尝试搜索,但找不到任何答案。

java jar

0
推荐指数
1
解决办法
1436
查看次数

为什么在执行sonar:sonar时找不到sonar-maven-plugin-3.0.1.jar?

当前,我们在持续的构建过程中包括(重新激活)声纳,并且遇到了一些问题。为了仅专注于声纳,我尝试使其在“ HelloWorld”项目中运行,但仍未成功。

repo1和repo2中似乎缺少一个jar(sonar-maven-plugin-3.0.1.jar)。我浏览了这些位置,在这里只能找到pom。

在以下网址上都找不到它:

到目前为止,我还没有找到这个jar的任何存档版本。

在这一点上,热烈欢迎任何帮助。

这是我的仓库(仅org \ codehaus \ mojo部分):

C:\maven-local-repo\org\codehaus\mojo>dir /s /b
C:\maven-local-repo\org\codehaus\mojo\maven-metadata-central.xml
C:\maven-local-repo\org\codehaus\mojo\maven-metadata-central.xml.sha1
C:\maven-local-repo\org\codehaus\mojo\mojo-parent
C:\maven-local-repo\org\codehaus\mojo\sonar-maven-plugin
C:\maven-local-repo\org\codehaus\mojo\mojo-parent\38
C:\maven-local-repo\org\codehaus\mojo\mojo-parent\38\mojo-parent-38.pom
C:\maven-local-repo\org\codehaus\mojo\mojo-parent\38\mojo-parent-38.pom.sha1
C:\maven-local-repo\org\codehaus\mojo\sonar-maven-plugin\3.0.1
C:\maven-local-repo\org\codehaus\mojo\sonar-maven-plugin\maven-metadata-central.xml
C:\maven-local-repo\org\codehaus\mojo\sonar-maven-plugin\maven-metadata-central.xml.sha1
C:\maven-local-repo\org\codehaus\mojo\sonar-maven-plugin\3.0.1\sonar-maven-plugin-3.0.1.pom
C:\maven-local-repo\org\codehaus\mojo\sonar-maven-plugin\3.0.1\sonar-maven-plugin-3.0.1.pom.sha1
Run Code Online (Sandbox Code Playgroud)

这是执行时得到的输出mvn sonar:sonar -X

+ Error stacktraces are turned on.
Apache Maven 2.2.1 (r801777; 2009-08-06 21:16:01+0200)
Java version: 1.7.0_51
Java home: C:\Tools\jdk1.7.0_51\jre
Default locale: fr_FR, platform encoding: Cp1252
OS name: "windows 7" version: "6.1" arch: "amd64" Family: "windows"
[DEBUG] Building Maven user-level plugin registry from: 'C:\Users\a89632\.m2\plugin-registry.xml'
[DEBUG] Building Maven …
Run Code Online (Sandbox Code Playgroud)

java jar maven sonarqube

0
推荐指数
1
解决办法
8201
查看次数

你能打开一个jar文件,更改一些图标,然后再关闭它吗?

这个问题源于Eclipse中的旧痛苦.高dpi显示屏上的图标太小.在文件系统中搜索图标(可能是.png或.gif文件)也无济于事.它们隐藏在Eclipse jar文件中.

在此输入图像描述

幸运的是,最新的Neon版本有望解决这个问题.然而,如果我能够触及图标并调整它们,我会很激动.让编程环境完全自定义会非常有趣.

是否可以打开一个jar文件,取出一些图标,用你自己的替换它们,关闭jar文件并启动Eclipse?

或者是在Github上某处下载整个Eclipse源代码并从头开始编译所有内容的唯一方法(使用您自己的图标替换原始图标)?如果这是唯一的可能性,那么我就放弃了(除非我可以在某个地方获得如何构建它的教程).

编辑:显然,你不能只是改变jar中的一些文件,因为这会弄乱'签名'.Eclipse将不再运行您已更改的插件jar.有人将我重定向到以下StackOverflow主题,该主题描述了如何取消签名jar文件: 取消签名一个签名的jar

当您对jar文件进行签名时,新文件将添加到META-INF目录中,例如"MKSIGN.SF"和"MKSIGN.DSA".只需将它们从jar文件中删除(使用任何zip实用程序),然后将其保留为未签名.

我遵循了这个建议,但没有帮助.Eclipse仍然拒绝运行我改变过的任何插件jar.

编辑:这些是我在jar文件中删除的文件:

  • META-INF/ECLIPSE_.SF
  • META-INF/ECLIPSE_.RSA

java eclipse eclipse-plugin jar

0
推荐指数
1
解决办法
301
查看次数

避免将jar依赖包装到aar中

我正在开发一个工作的android库,我们正在使用maven存储库中没有的一些jar.但是,我们在法律上不允许将这些罐装入我们的库中,除了我们的库之外,消费者必须自己获取这些罐子.

我的问题是,我似乎无法要求我们的库的消费者提供这些罐子(我正在使用包含aar的测试应用程序).我试过这个类似问题的解决方案无济于事.

我已经尝试将它们设置为provided而不是compile在我的gradle文件中:

// Neither of these seem to fix the problem
compile files('libs/externalDep.jar')
provided files('libs/externalDep.jar')
Run Code Online (Sandbox Code Playgroud)

我也尝试将它们排除在包装选项中:

packagingOptions { exclude 'libs/externalDep.jar }`
Run Code Online (Sandbox Code Playgroud)

我可以通过将其添加到android我的标签中来排除它们build.gradle:

android.libraryVariants.all { variant ->
variant.outputs.each { output ->
    def packageLib = output.getPackageLibrary()
    packageLib.exclude('libs/externalDep.jar')
}
Run Code Online (Sandbox Code Playgroud)

他们没有被添加到aar但是构建测试应用程序给了我:

com.android.build.api.transformTransformException:
  com.android.builder.packaging.DuplicateFileException:
    Duplicate files copied in APK VERSION.txt
File1: path/to/jar/in/test/app/project/externalDep.jar
File2: path/to/build/intermediates/exploded-aar/.../jars/classes.jar
Run Code Online (Sandbox Code Playgroud)

为了澄清,我并不关心maven repo依赖,那些工作正常.我只是希望使用该库的人必须获得并添加我们正在使用的那些罐子.
当然,有一个不太复杂的方式来指定这个?

android jar gradle aar

0
推荐指数
1
解决办法
1824
查看次数

有没有办法反编译grails/groovy jar文件?

我有一个groovy/grails jar文件.我想将它反编译成groovy文件.有没有工具可以做到这一点.我已经尝试了一些在线decopilers,他们都将文件解压缩到java而不是groovy.我使用gradle jar命令创建了jar .我使用的是grails版本3.1.11和groovy版本:2.4.7gradle版本:2.13

grails groovy decompiling jar gradle

0
推荐指数
1
解决办法
1045
查看次数

如何运行-jar文件(java.lang.NoClassDefFoundError)

我有一个使用三个库的Maven项目(Netbeans IDE):gson,okhttp,okio.我试图通过终端和命令$ java -jar app.jar执行构建项目后创建的.jar,但我不断收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: okhttp3/Callback
    at it.bitrack.main.Main.main(Main.java:43)
Caused by: java.lang.ClassNotFoundException: okhttp3.Callback
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

我已经将这三个库的.jar文件添加到与app.jar相同的文件夹中,并添加到名为libs的子文件夹中,但是没有任何正面效果.

你能猜到为什么以及我可以尝试使它起作用的东西吗?在Netbeans中执行时,该应用程序运行完美...

这是我的POM文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>it.bitrack</groupId>
    <artifactId>BiTrackAssetSimulator</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
        </dependency>

        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>3.6.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <!-- Build an executable JAR -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>it.bitrack.main.Main</mainClass>
                        </manifest> …
Run Code Online (Sandbox Code Playgroud)

java netbeans jar noclassdeffounderror maven

0
推荐指数
1
解决办法
8804
查看次数

Gradle生成的Scala JAR的“找不到或加载主类”错误

经过大量研究,我似乎无法弄清楚使用Gradle生成可运行的Scala jar文件时遇到的问题。我重写了'jar'Gradle任务,以创建一个从我的主类文件开始执行的jar文件(包括依赖项)。但是,无论何时运行它,无论我对Main-Class属性使用什么功能,控制台都会引发“找不到或加载主类”错误。这是我到目前为止的内容:

build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
}

apply plugin: 'java'
apply plugin: 'scala'
apply plugin: 'application'

repositories {
    mavenCentral()
    // some other repos
}

version = '1.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8

mainClassName = "com.test.Main"

dependencies {
    // my dependencies
}

jar {
    zip64 = true

    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
Run Code Online (Sandbox Code Playgroud)

src / main / scala / com / test / Main.scala

package …
Run Code Online (Sandbox Code Playgroud)

java scala jar build gradle

0
推荐指数
1
解决办法
2290
查看次数