Java JAR文件可以';我找不到课
我有以下代码:Java JAR文件可以';我找不到课,java,jar,Java,Jar,我有以下代码: package deerangle; 公共类重命名器实现org.jetbrains.java.decompiler.main.extern.iIdentifierRename{ 公共静态void main(字符串[]args){ System.out.println(“嘿”); } 公共长计数器=0; 公共布尔ToBerNamed(类型elementType、字符串类名、字符串元素、字符串描述符){ return!(elementType==Type.ELEMENT\u CLAS
package deerangle;
公共类重命名器实现org.jetbrains.java.decompiler.main.extern.iIdentifierRename{
公共静态void main(字符串[]args){
System.out.println(“嘿”);
}
公共长计数器=0;
公共布尔ToBerNamed(类型elementType、字符串类名、字符串元素、字符串描述符){
return!(elementType==Type.ELEMENT\u CLASS&&className.length()<4);
}
公共字符串getNextClassName(字符串全名、字符串短名){
返回“类”++计数器;
}
公共字符串getNextFieldName(字符串类名称、字符串字段、字符串描述符){
返回“字段”+类名+“C”+++计数器;
}
公共字符串getNextMethodName(字符串类名称、字符串方法、字符串描述符){
返回“方法”+类名+“C”+++计数器;
}
}
此文件名为rename.java
,位于文件夹deerangle
中
首先,我运行javac deerangle/rename.java
然后运行jar cvf Renamer.jar deerangle/Renamer.class
这将创建一个包含我的类文件的jar文件
当我现在运行java-cp Renamer.jar deerangle.Renamer
时,它说:
错误:无法找到或加载主类deerangle.Renamer
我认为这并不重要,但下面是我在代码中实现的类:
//版权所有2000-2017 JetBrains s.r.o.此源代码的使用受Apache 2.0许可证的管辖,该许可证可在许可证文件中找到。
包org.jetbrains.java.decompiler.main.extern;
公共接口标识器重命名器{
枚举类型{ELEMENT_类,ELEMENT_字段,ELEMENT_方法}
布尔ToBerNamed(类型elementType、字符串类名、字符串元素、字符串描述符);
字符串getNextClassName(字符串全名、字符串短名);
字符串getNextFieldName(字符串类名称、字符串字段、字符串描述符);
字符串getNextMethodName(字符串类名称、字符串方法、字符串描述符);
}
为什么我会出错?我做错了什么?如果我拿出您指定的
界面
并按照您的所有步骤操作,一切正常,它们会打印到我的控制台上。因此,我怀疑这与实现的iIdentifierRename
接口有关,并且所有依赖项都是在编译时找到的,而不是在运行时找到的
一个选项是将所有依赖项打包到jar
文件中,以便在运行时中可用
我建议您为此使用Maven-to-Gradle之类的构建工具
最近刚刚帮助了一个有类似问题的人,但他们已经“专业化”了他们的项目