在我看来,这应该找到我正在寻找的符号。相反,它没有找到该符号。我哪里错了?我知道该符号存在于 .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.
我查看了本网站上的其他几个答案,试图了解为什么会发生这种情况,但我不明白我做错了什么。
我正在尝试开始使用 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
然后我使用以下命令编译我的代码: …
我希望jar [options] [name] [files]从命令行使用一些 Java 代码制作一个 jar 文件,但无法识别。
根据Oracle Jar 是 JDK 的一部分。我安装了 7 和 8。如何运行 jar 函数?
我没有 Oracle 文档显示的 C:/Java。我试过从 JDK 目录中以管理员权限运行 jar。
我还没有输入参数,想检查一下我至少可以先找到 jar 函数。
从 JDK 目录 (1.8)
运行 jar http://puu.sh/eoer7/4fcd0ce63c.png 从 System32 运行 jar http://puu.sh/eoe3X/076d79b4e4.png
你能解释一下在 lib 文件夹中添加 jars 和将 jars 添加到 classpath 的区别吗?
两者都只是添加罐子的一种方式(任何人都会工作)还是有什么区别?我尝试搜索,但找不到任何答案。
当前,我们在持续的构建过程中包括(重新激活)声纳,并且遇到了一些问题。为了仅专注于声纳,我尝试使其在“ 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) 这个问题源于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文件中删除的文件:
我正在开发一个工作的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依赖,那些工作正常.我只是希望使用该库的人必须获得并添加我们正在使用的那些罐子.
当然,有一个不太复杂的方式来指定这个?
我有一个groovy/grails jar文件.我想将它反编译成groovy文件.有没有工具可以做到这一点.我已经尝试了一些在线decopilers,他们都将文件解压缩到java而不是groovy.我使用gradle jar命令创建了jar .我使用的是grails版本3.1.11和groovy版本:2.4.7和gradle版本:2.13
我有一个使用三个库的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) 经过大量研究,我似乎无法弄清楚使用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)