我如何更改mainfest文件中的类路径。
我在文件夹中有外部jar文件:
Class-Path: folder/AbsoluteLayout.jar
Run Code Online (Sandbox Code Playgroud)
我想将我的外部jar文件添加到我的JAR MyProject.jar并更改mainfast ..我应该在mainfestu中编写什么内容以将库链接到我的jar中。
Class-Path: path to my externalJar in MyProject.jar
Run Code Online (Sandbox Code Playgroud)

希望您能理解,谢谢:-)
这很难解释,但我会尽我所能.有一个.jar文件可以打开锦标赛环境的GUI.它是独立的,我没有给出源代码.我需要用Java编写一个代表比赛的代理.当.jar文件打开时,我可以在GUI中指定代理程序的类文件的路径.这很好用.但我不知道如何调试这个,因为.jar文件没有在eclipse中打开.我尝试使用外部工具,它似乎运行.jar文件,但GUI没有打开,所以我无法指定代理的路径.锦标赛环境文档并没有真正提供在没有GUI的情况下操作它的说明,所以我真的只需要使用GUI.我可以通过eclipse运行这个文件的任何方式,所以我可以看到我自己的代理如何与环境一起工作并相应地进行测试/调试?
附加信息 - 这个.jar也可以作为一个库,我可以导入Eclipse而不会出现任何问题.
我有一个gradle构建脚本,如下所示:
dependencies {
compile project(':common:avro')
....
fatJar {
manifest {
attributes 'Main-Class': 'package.subpackage.MainClass'
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够从命令行中选择要使用的MainClass,还可以选择生成的fat.jar名称。这可能吗?
我使用命令行jar cvfm server-model.jar nz生成一个名为的jar文件server-model.jar
一些输出:
adding: nz/api/pojos/core/util/(in = 0) (out= 0)(stored 0%)
adding: nz/api/pojos/core/util/RenderMarkdownReqMsg.java(in = 845) (out= 283)(deflated 66%)
adding: nz/api/pojos/core/util/RenderMarkdownRespMsg.java(in = 904) (out= 296)(deflated 67%)
Run Code Online (Sandbox Code Playgroud)
之后我跑了 jar -tvf server-model.jar
一些输出:
0 Wed Jul 02 16:52:20 NZST 2014 nz/api/pojos/core/util/
845 Wed Jul 02 16:52:20 NZST 2014 nz/api/pojos/core/util/RenderMarkdownReqMsg.java
904 Wed Jul 02 16:52:20 NZST 2014 nz/api/pojos/core/util/RenderMarkdownRespMsg.java
Run Code Online (Sandbox Code Playgroud)
我的问题是一个简单的Java项目(因为我几乎尝试了所有东西而项目实际上使用了Maven)不能使用这些类,因为import语句不能识别它们.
它认为MANIFEST.MF和/或类路径存在问题.任何建议表示赞赏.
MANIFEST.MF
Manifest-Version: 1.0
Created-By: 1.7.0_45 (Oracle Corporation)
Run Code Online (Sandbox Code Playgroud) 每次我运行导出的.jar文件时,包含一个JFrame图像作为其图标,该文件不会运行,除非我提取文件.在编译器中它正在运行.我不想制作一个将资源包和jar文件保存在目录中的启动器.
我在使用批处理文件执行java程序时遇到问题.
我的批处理文件看起来像 -
java -cp .;/lib/commons-codec-1.9.jar;/lib/commons-logging-1.1.3.jar;/lib/junit-4.11.jar;/lib/log4j-1.2.17.jar;/lib/poi-3.11-20141221.jar;/lib/poi-examples-3.11-20141221.jar;/lib/poi-excelant-3.11-20141221.jar;/lib/poi-ooxml-3.11-20141221.jar;/lib/poi-ooxml-schemas-3.11-20141221.jar;/lib/poi-scratchpad-3.11-20141221.jar;/lib/xmlbeans-2.5.0.jar; com.migrate.MigrUtil
lib文件夹与批处理文件位于同一目录中.但它无法检测到jar文件.当我提到jars文件的绝对路径时,它工作正常,例如c:\test\lib\commons-codec-1.9.jar
这个家伙有什么帮助吗?
我一直在研究一种使用AES加密的应用程序,它需要JAR进行Base 64编码和解码.
我跟着这个教程此有关导入JAR(可能是我的问题,因为好像他们不知道他们在做什么).逐行编译很高兴,但在手机运行时,我收到错误消息
Could not find method org.apache.commons.codec.binary.Base64.decodeBase64, referenced from method com.login.tools.Encoder.decrypt
Run Code Online (Sandbox Code Playgroud)
我的应用程序gradle脚本确实引用了JAR
compile project(':commons-codec-1.10')
Run Code Online (Sandbox Code Playgroud)
哪个应该调用commons-codec-1.10 gradle脚本
configurations.create("default")
artifacts.add("default", file('commons-codec-1.10.jar'))
Run Code Online (Sandbox Code Playgroud)
调用类本身看起来有点像
import org.apache.commons.codec.binary.Base64;
.
.
.
public static String decrypt(String strToDecrypt)
setDecryptedString(new String(cipher.doFinal(Base64.decodeBase64(strToDecrypt))));
Run Code Online (Sandbox Code Playgroud) 读完这个问题后,我设法运行了一个.jar文件,该文件在jar文件中有外部依赖项:
/usr/lib/jvm/java-8-jdk/bin/java -classpath /usr/local/bin/kiaragen.jar:/home/kiara/AppLab/KIARA/kiaragen/src/main/resources/org/fiware/kiara/generator/idl/templates/*:/usr/lib/jvm/java-8-jdk/jre/lib/*:/home/kiara/AppLab/KIARA/kiaragen/lib/* org.fiware.kiara.generator.kiaragen
Run Code Online (Sandbox Code Playgroud)
其中/usr/local/bin/kiaragen.jar是要执行的文件.现在,我正在尝试运行依赖于.class文件的不同版本:
/home/kiara/AppLab/KIARA/IDL-Parser/target/classes/com/eprosima/idl/parser/exception/ParseException.class
Run Code Online (Sandbox Code Playgroud)
将文件添加到类路径:
/usr/lib/jvm/java-8-jdk/bin/java -classpath /usr/local/bin/kiaragen-0.2.0.jar:/home/kiara/AppLab/KIARA/IDL-Parser/target/classes/com/eprosima/idl/parser/exception/ParseException.class:/home/kiara/AppLab/KIARA/kiaragen/src/main/resources/org/fiware/kiara/generator/idl/templates/*:/usr/lib/jvm/java-8-jdk/jre/lib/*:/home/kiara/AppLab/KIARA/kiaragen/lib/* org.fiware.kiara.generator.kiaragen
Run Code Online (Sandbox Code Playgroud)
给出以下例外:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: com/eprosima/idl/parser/exception/ParseException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: com.eprosima.idl.parser.exception.ParseException
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)
... 7 more
Run Code Online (Sandbox Code Playgroud)
为什么?
.jar的清单文件与以前相同:
$ cat META-INF/MANIFEST.MF
Manifest-Version: 1.0
Main-Class: org.fiware.kiara.generator.kiaragen
Run Code Online (Sandbox Code Playgroud)
如何将.class文件添加到类路径?
EDITED
大家好.
我的代码使用pircBot将IRC消息发送到twitch.tv.
消息包括'█▓▒CRIT等字符!░░╚╡▌▌╞╗░░"
示例输出代码:sendMessage("#twitchraidstwitch","/me█▓▒CRIT!░░╚╡▌▌╞╗░░");
所以这些字符最初都显示为'?' 在Eclipse中.在我将窗口 - >首选项 - >文本文件编码更改为US-ASCII之前,它们无法正常工作.(虽然我刚刚学会了这些字符甚至不是ASCII.)
当我将项目导出到jar并尝试在CMD中运行时,字符将返回到"?".
我如何让这个在cmd中工作?
谢谢!
当我开始-classpath论证时,java它会仅选取具有.jar扩展名的文件,还是会尝试查看-classpath路径中的其他文件?
如果我指定含义-classpath是/mypath包含
/mypath/IAmANormalJar.jar
/mypath/IAmAJarWithoutExtension
Run Code Online (Sandbox Code Playgroud)
哪个IAmAJarWithoutExtension是实际的jar文件但没有.jar扩展名.只会/mypath/IAmANormalJar.jar由JVM加载还是会/mypath/IAmAJarWithoutExtension被加载?