Tag: jar

javac生成的$$中的$$是什么意思?

当转移由DependencyFinder和java-callgraph等库生成的java调用图时,我发现java编译器为匿名函数,内部类等生成名称。 我已经发现了其中几个的含义(如果我错了,请更正): org.example.Bar$Foo引用Foo ,它是org.example.Bar的内部类。 org.example.Bar$1引用在org.example.Bar$1一个方法中声明的匿名类。 org.example.Bar.lambda$spam$1()是指在org.example.Bar.spam()方法中声明的lambda。 但是,我还发现: org.example.Bar$$Lambda$2.args$1 org.example.Bar$$Lambda$2.call() org.example.Bar$$Lambda$7.lambdaFactory$() org.example.Bar$$Lambda$7.get$Lambda() 上面的四个名字是指什么? 双美元( $$ )是什么意思?

如何在jar中validationMANIFEST.MF的顺序?

我遇到了一个对我来说绝对新鲜的有趣问题。 正如我突然发现的那样,Jar规范说,包括在内, META-INF和MANIFEST.MF必须是*.jar包的第一和第二个条目,而不仅仅是归档中的目录和文件。 我正在使用Java框架非常注意这个要求而不是那么冗长。 如何在jar中检查META-INF和MANIFEST.MF是否正确订购? 更新:许多jar子都是第三方,其中有很多。 我无法在记事本,excel,hexeditor,photoshop或任何寻找字节序列的东西中打开这些jar子。 我需要命令行工具。 谢谢! 更新2:以下是我提出这个问题的原因: http : //www.mail-archive.com/dev@felix.apache.org/msg17097.html

类加载器如何在清单类路径中加载类引用?

我使用maven来构建一个带有外部类路径添加的jar,使用addClasspath 。 当我使用java -jar artifact.jar运行该jar时,它能够从该主jar和libs目录中的所有jar加载类。 但是,如果我问系统属性java.class.path它将只列出主jar。 如果我向系统类加载器询问其url( ClassLoader.getSystemClassLoader().getURLs() ),它也只会返回主jar。 如果我询问某个库中包含的任何类的类加载器,它将返回系统类加载器。 系统类加载器如何加载这些类? 它必须对这些库有一些了解才能从这些库中加载类。 有没有办法要求它使用这种“扩展”类路径?

在Netbeans 7中更改JAR文件的目标文件夹

我正在为客户端开发一个多项目解决方案,我们正在尝试让所有构建自动进入预定的BIN文件夹。 所有的C ++项目都很容易被移除,但Java方面已经certificate不那么容易配置。 当我转到项目的属性并转到Build-> Packaging时,“JAR文件:”文本框显示一个指向“dist / App.jar”的只读文本框(我想将其更改为“.. /../../bin/App.jar“。有关如何做到这一点的任何想法?

Java:作为管理员运行时无法访问jarfile

我有一个名为test.jar的jar文件,我使用同一文件夹中的批处理脚本运行该文件。 这是批处理代码: java -jar test.jar pause jar子本身没有问题,我可以运行它。 但是,如果我尝试以管理员身份运行批处理文件(通过右键单击它并选择“以管理员身份运行”),我会收到以下错误: Error: Unable to access jarfile test.jar 我使用的是Windows 8.1,但这也发生在运行Windows 7的计算机上。如果能够以管理员身份运行,我该怎么办?

使用Intellij 2016创建Jar – 没有主要清单属性

在运行由Intellij创建的jar时,我没有获得no main manifest attribute 。 我提取了jar并观察到有另一个清单文件,而不是我在创建工件时指定的文件。 当我在IDE中打开清单时,它会正确显示所有内容,但在创建jar后,我会得到一个全新的清单文件。 Manifest-Version: 1.0 Main-Class: YoutubeList 我尝试了其他答案的每一个解决方案,但仍然没有做到正确。 为什么在Intellij中创建一个简单的jar是一项任务,它应该可以帮助开发人员! 编辑 有时它不包含Jar中的.class文件,导致could not found or load class

当前运行的类或JAR文件的位置

我有一个Lotus Notes数据库,它正在与远程Web服务进行一些交互。 我编写了一个自定义Java类来执行交互。 可以根据用户的设置从三个位置之一执行类方法: 在通过Lotus Notes Java代理调用的Java脚本库中 在位于用户的“jvm / lib / ext”目录中的JAR文件中 在位于用户“jvm / lib”目录中的自定义目录中的JAR文件中(例如,“jvm / lib / custom_dir”)。 Lotus Notes JVM通过使用“JavaUserClassesExt”本地notes.ini变量来了解自定义目录。 在我的课程中,我希望能够返回当前类正在执行的位置。 因此,如果它从选项2或选项3执行,则返回JAR文件路径。 如果它从选项1执行,则返回我可以处理的其他内容。 我尝试了以下内容。 getProtectionDomain()方法 getClass().getProtectionDomain().getCodeSource().getLocation() 结果如下: java.security.AccessControlException: Access denied (java.lang.RuntimePermission getProtectionDomain) 没有选项可以更改运行此任何客户端的任何安全设置。 Class.getResource方法 String myName = “/” + getClass().getName().replace(‘.’, ‘/’) + “.class”; URL myResourceURL = getClass().getResource(myName); 结果: myResourceURL始终为null。 ClassLoader.getResource方法 String myName2 = […]

如何使用Selenium / TestNG java文件中的IntelliJ制作可执行jar文件?

我已经谷歌搜索了几天试图弄清楚如何做到这一点,如果有人这样做,我会非常感谢帮助。 我有一个自动化测试项目,我在IntelliJ中创建,自动化用户与Web应用程序交互。 我想将自动化测试(使用Selenium和TestNG在Java中创建)放入可执行jar文件中,其他人可以通过双击jar文件来运行。 每次我尝试通过导航到项目结构 – >工件 – > + – >jar子 – >从具有依赖关系的模块创建一个jar文件时,它最终会创建一个声称它的jar, “Could not find or load the main class ” 当我尝试使用以下命令运行它时: java -jar MyProject.jar 知道为什么我不断得到这个错误,或者有办法成功地做到这一点? 另外,这是我的pom.xml: TestAutomation TestAutomation 1.0-SNAPSHOT org.apache.maven.plugins maven-assembly-plugin true com.test.automation.Executable jar-with-dependencies org.seleniumhq.selenium selenium-server 2.39.0 org.seleniumhq.selenium selenium-java 2.40.0 junit junit 4.11 test org.testng testng 6.1.1 test

在eclipse中使用额外的本机代码库导出到Runnable jar

我无法将我的java项目从eclipse导出为jar可执行文件。 我的java项目使用外部库(称为jri)。 我已经导出了jri.jar文件并在eclipse中为其本机库设置了库路径,并且它在eclipse中的开发效果很好。 但是,当我将其导出为可执行jar文件时,我收到以下错误: Cannot find JRI native library! Please make sure that the JRI native library is in a directory listed in java.library.path. 我把一个名为lib的文件夹放在与我的项目jar相同的目录中; 这个lib文件夹包含jri的本机库。 jri的本机库不在一个文件中,而是在一个文件夹中。 这与我在eclipse中的设置相同。 我在eclipse中导出项目的方式是 Export… Java > Runnable JAR file Copy required libraries into a sub folder next to the generated Jar Finish 我的文件夹是这样组织的 folder project project.jar project_lib jri.jar jri […]

使用FileInputStream在Resources中加载文件

我知道在资源中打开文件的安全方法是: InputStream is = this.getClass().getResourceAsStream(“/path/in/jar/file.name”); 现在问题是我的文件是Weka Wrapper包中的decider的模型,而Decider类只有一个方法: public void load(File file) throws Exception load获取文件并将其作为FileInputStream打开。 你看到了解决方法吗? 我真的很想将模型发送到资源中。 我正在考虑创建一个临时文件,在临时文件中写入模型的内容,然后将临时文件传递给Weka,但它是如此脏..其他选项?