- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个桌面应用程序。我使用 ProGuard 并进行以下配置:
@proguard_jmods.cfg
#-dontshrink
-dontoptimize
#-dontobfuscate
-repackageclasses ''
-renamesourcefileattribute SourceFile
-keepattributes *Annotation*,Signature,Annotation,InnerClasses,EnclosingMethod,SourceFile,LineNumberTable
-adaptresourcefilenames
-dontnote
-dontwarn com.ctc.wstx.**,com.github.**,com.jolbox.bonecp.**,com.mchange.v2.**,com.sun.istack.**,com.sun.tools.**,com.healthmarketscience.**,com.healthmarketscience.**,org.codehaus.**,org.iq80.snappy.**,com.sun.xml.**,com.thoughtworks.xstream.**,de.l3s.boilerpipe.**,javax.activation.**,javax.transaction.**,net.sf.ehcache.**,opennlp.tools.util.**,org.apache.cxf.**,org.apache.log4j.**,org.apache.poi.**,org.apache.sis.**,org.apache.**,org.dom4j.**,org.codehaus.plexus.**,javax.enterprise.**,org.glassfish.**,org.jdesktop.**,org.quartz.**,com.sun.org.**,javax.imageio.metadata.**,javax.xml.**,javax.jws.**,org.w3c.dom.**,org.xml.sax.**,au.com.bytecode.**,com.fasterxml.jackson.**,com.google.common.**,com.google.gson.**,com.googlecode.mp4parser.**,com.itextpdf.**,com.mchange.v1.**,com.microsoft.schemas.**,com.strobel.assembler.**,com.strobel.compilerservices.**,examples.RCallerScriptEngineExample1.**,examples.RCallerScriptEngineExample2.**,examples.RCallerScriptEngineExample2.**,examples.RCallerScriptEngineExample3.**,javassist.util.HotSwapAgent.**,javassist.util.HotSwapper.**,javax.rmi.CORBA.**,javax.rmi.CORBA.**,javax.rmi.PortableRemoteObject.**,org.bouncycastle.**,org.cyberneko.**,org.eclipse.jetty.**,org.etsi.uri.**,org.jboss.com.**,org.jdom2.**,org.jfree.**,org.joda.time.**,org.terracotta.quartz.**,ucar.nc2.grib.**,javax.imageio.metadata.**,com.jmatio.io.**,javax.script.**,com.sun.**,java.rmi.**,opennlp.tools.sentiment.**,java.lang.**,java.util.**,sun.misc.Unsafe.**,sun.**,org.w3.**,net.sf.ehcache.distribution.**,org.apache.http.**,org.apache.any23.**,com.graphbuilder.curve.**,com.strobel.decompiler.**,com.uwyn.jhighlight.**,rg.codehaus.stax2.**,org.openxmlformats.schemas.**,org.springframework.**,org.slf4j.**,com.mysql.**,org.pushingpixels.**,org.hibernate.**,org.jboss.**,net.bytebuddy.**,javax.persistence.**,org.eclipse.**,java.awt.datatransfer.**,java.sql.**,org.objectweb.**,org.apache.any23.**
-ignorewarnings
-verbose
-printseeds seed
# Keep - Applications. Keep all application classes, along with their 'main' methods.
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
-keep interface *
-keepnames class ** implements com.xxx.xx.utils.ISerialisable
-keepclassmembers class ** implements com.xxx.xx.utils.ISerialisable {
<fields>;
}
-keep,allowshrinking class ** extends com.xxx.xx.utils.ISerialisable
# Keep - Applications. Keep all application classes, along with their 'main' methods.
-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}
# Also keep - Enumerations. Keep the special static methods that are required in
# enumeration classes.
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
# Also keep - Database drivers. Keep all implementations of java.sql.Driver.
-keep class * extends java.sql.Driver
# Keep - Native method names. Keep all native class/method names.
-keepclasseswithmembers,includedescriptorclasses,allowshrinking class * {
native <methods>;
}
其中 proguard_jmods.cfg 包含以下内容:
-libraryjars 'C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\jmods\java.base.jmod'
-libraryjars 'C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\jmods\java.desktop.jmod'
-libraryjars 'C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\jmods\java.xml.jmod'
当运行方式>Maven 安装时,我抛出以下异常:
[proguard] java.io.IOException: Can't read [C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\lib\rt.jar] (No such file or directory: C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\lib\rt.jar)
我检查了该文件的路径,但没有它。知道如何解决这个问题吗?谢谢!
编辑:Pom 文件:
<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>xxx</groupId>
<artifactId>xxxx</artifactId>
<version>0.0.2</version>
<name>xxxx</name>
<properties>
<jre.version>jre11</jre.version>
<java.version>11</java.version>
<jdk.version>11</jdk.version>
<jodatime.version>2.5</jodatime.version>
<junit.version>4.13</junit.version>
<maven.test.skip>true</maven.test.skip>
<proguard.skip>false</proguard.skip>
</properties>
<repositories>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>https://repo1.maven.org/maven2</url>
</repository>
<repository>
<id>bedatadriven</id>
<name>bedatadriven public repo</name>
<url>https://nexus.bedatadriven.com/content/groups/public/</url>
</repository>
<repository>
<id>oss.sonatype.org-snapshot</id>
<url>http://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>https://repo1.maven.org/maven2</url>
</pluginRepository>
</pluginRepositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.xxxx</groupId>
<artifactId>x</artifactId>
<version>0.0.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.12</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
</dependency>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
</dependency>
<dependency>
<groupId>com.crealytics</groupId>
<artifactId>spark-excel_2.12</artifactId>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.guessencoding</groupId>
<artifactId>guessencoding</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jdesktop.swingx</groupId>
<artifactId>jxmapviewer2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.any23</groupId>
<artifactId>apache-any23-encoding</artifactId>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j</artifactId>
<type>pom</type>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.10</version>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>3.0</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<argLine>
--illegal-access=permit
</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<argLine>
--illegal-access=permit
</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<id>x</id>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.xxxx.x.exe.x</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>module-info.java</exclude>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<finalName>${project.artifactId}-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<proguardVersion>6.2.2</proguardVersion>
<obfuscate>true</obfuscate>
<injar>${project.artifactId}-0.0.2.jar</injar>
<outjar>${project.artifactId}-0.0.2.jar</outjar>
<outputDirectory>${project.build.directory}</outputDirectory>
<proguardInclude>${basedir}/proguard/proguard.cfg</proguardInclude>
<libs>
<lib>${java.home}/lib/rt.jar</lib>
<lib>${java.home}/lib/jsse.jar</lib>
</libs>
<skip>${proguard.skip}</skip>
</configuration>
<dependencies>
<dependency>
<groupId>net.sf.proguard</groupId>
<artifactId>proguard-base</artifactId>
<version>6.2.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId> org.apache.maven.plugins </groupId>
<artifactId> maven-compiler-plugin </artifactId>
<versionRange> [2.5.1,) </versionRange>
<goals>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<resources>
<resource>
<targetPath></targetPath>
<filtering>false</filtering>
<directory>${basedir}/src/main/resources</directory>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/config.properties</include>
</includes>
</resource>
<resource>
<targetPath></targetPath>
<filtering>false</filtering>
<directory>${basedir}/src/main/resources/files</directory>
</resource>
<resource>
<filtering>false</filtering><!-- if it is neccessary -->
<directory>${project.basedir}/${jre.version}</directory><!-- from -->
<targetPath>${project.build.directory}/${jre.version}</targetPath><!--
to -->
<includes><!-- what -->
<include>**</include>
</includes>
</resource>
</resources>
<testResources>
</testResources>
</build>
</project>
最佳答案
你有这条线 <lib>${java.home}/lib/rt.jar</lib>
在你的 proguard 配置中。这在 JDK11 中不再有效,因为它在该版本的 Java 中被删除。
对于较新的 JDK,请参阅:Proguard: Can't read C:\Program Files\Java\jdk-15.0.1\lib\rt.jar (No such file or directory)
关于java - proguard:无法读取 [C:\Program Files\AdoptOpenJDK\jdk-11.0.6.10-hotspot\lib\rt.jar],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63398875/
我正在研究调试应用程序中的“OutOfMemoryError: Metaspace”错误。就在 OOME 之前,我在 gc 日志中看到以下内容: {Heap before GC invocations
我目前正在使用 SmoothDivScroll 来实现图像的滚动流。但是,左边的 Hotspot 太快了,而 Right Hotspot 似乎 react 不正常。 我设置了一个 fiddle 来展示
是否有命令行参数来增加 Hotspot 将编译的 Java 方法的最大大小(从 8000 个字节码开始)? 最佳答案 您可能需要下载 sources并为此使用调试标志构建(我不确定)。 java -X
我正在尝试处理一个 excel 文件。但是我遇到了以下问题 An unexpected error has been detected by HotSpot Virtual Machine: SIGS
有些人使用NetBeans 来跟踪和调试JDK9。但是,由于我使用 ssh 访问服务器上的源代码,所以我必须使用 GDB 来跟踪源代码并查看 JDK/Hotspot 代码的控制流,而我不能使用 GUI
Pure methods是那些没有副作用的:它们的唯一作用是返回一个值,该值是其参数的函数。 使用相同的参数对同一个纯方法的两次调用将返回相同的值。那么,假设两次调用具有相同参数的纯方法,HotSpo
假设您有一个“简单的”枚举: public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATUR
众所周知,HotSpot 分析运行时使用模式和性能特征,然后在 Java 应用程序运行时基于该分析优化 JIT 流程。因此,在尝试对 Java 应用程序进行基准测试时,通常建议谨慎行事,以便允许在进行
为了简化问题,我们假设在我们的 JRE 中,我们有一个不使用 JIT 的 Hotspot JVM 实现。这意味着我们不会预编译机器代码。 我想理解,JVM在遇到字节码时,解释器是否使用Hotspot编
观看Towards a Universal VM演示文稿中,我研究了这张幻灯片,其中列出了 HotSpot JIT 所做的所有优化: 在特定于语言的技术部分中存在反反射。我试图在互联网上查找有关它的一
我要为 Java 社区做出贡献,并且我对 JVM 很感兴趣。 现在我想下载最新的 JVM Hotspot 源代码并跟踪更新。 首先,我转到http://openjdk.java.net/ . 在其左侧
好吧,我对这个问题很困惑。我正在尝试运行一些似乎适用于一个人但不适用于另外两个人的专有软件。软件抛出此异常: Exception in thread "AWT-EventQueue-1" java.l
HotSpot 虚拟机检测到意外错误: EXCEPTION_ACCESS_VIOLATION (0xc0000005),位于 pc=0x6d6cf45b、pid=1800、tid=2824 Java
据我了解 modulus operation可以使用一些& 明智的魔法进行优化,其中除数是 2 的幂... 这可能是 JIT 编译器进行的优化? 最佳答案 我在这个问题上花了一些时间,写了这个 blo
我正在阅读 HotSpot VM 应用的优化技术,并发现 this presentation by Oracle其中列出了 HotSpot VM 尝试内联方法调用时的三种可能条件: Devirtual
我正在寻找一个开源 JavaScript 库/插件,它可以让我实现一个自定义函数: 允许特权用户在图像上的任意位置放置一个或多个图形图标(例如,类似 Google 的图钉),并将超链接、评论或其他属性
关于 HotSpot JVM 垃圾收集的一些问题。 我们有一个正在运行的 java 进程,选项是: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateSt
了解 Java HotSpot VM 的最佳方式是什么?如果我想修改源代码并添加自己的功能,最好的开发环境是什么(ctags 是否可以很好地与大型代码库配合使用,或者我是否需要一个成熟的 IDE)?
这是一个长时间运行的服务器应用程序,它会产生大量短暂的垃圾,并且在启动后几乎没有任何东西。大多数时候年轻一代收集速度很快,即使是 10 GB 也很快,因为它几乎都是垃圾,但我们偶尔会看到残酷的异常值。
当我在 Java Hotspot 客户端中运行计时测试程序时,我得到了一致的行为。然而,当我在 Hotspot 服务器上运行它时,我得到了意想不到的结果。本质上,在我尝试过的某些情况下,多态性的成本高
我是一名优秀的程序员,十分优秀!