![](/img/trans.png)
[英]java class getResource can't find icons listed in jar file
[英]Java JAR file can't find class
我有以下代码:
package deerangle;
public class Renamer implements org.jetbrains.java.decompiler.main.extern.IIdentifierRenamer {
public static void main(String[] args) {
System.out.println("HEY");
}
public long counter = 0;
public boolean toBeRenamed(Type elementType, String className, String element, String descriptor) {
return !(elementType == Type.ELEMENT_CLASS && className.length() < 4);
}
public String getNextClassName(String fullName, String shortName) {
return "Class" + ++counter;
}
public String getNextFieldName(String className, String field, String descriptor) {
return "field" + className + "C" + ++counter;
}
public String getNextMethodName(String className, String method, String descriptor) {
return "method" + className + "C" + ++counter;
}
}
此文件Renamer.java
位于deerangle
文件夹内。
首先,我运行javac deerangle/Renamer.java
。
然后我运行jar cvf Renamer.jar deerangle/Renamer.class
。
这将创建一个 jar 文件,其中包含我的 class 文件。
当我现在运行java -cp Renamer.jar deerangle.Renamer
,它说: Error: Could not find or load main class deerangle.Renamer
我认为这并不重要,但这是我在代码中实现的 Class:
// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.java.decompiler.main.extern;
public interface IIdentifierRenamer {
enum Type {ELEMENT_CLASS, ELEMENT_FIELD, ELEMENT_METHOD}
boolean toBeRenamed(Type elementType, String className, String element, String descriptor);
String getNextClassName(String fullName, String shortName);
String getNextFieldName(String className, String field, String descriptor);
String getNextMethodName(String className, String method, String descriptor);
}
为什么我会收到错误消息? 我究竟做错了什么?
如果我取出您指定的interface
并按照您的所有步骤操作,一切正常,他们会打印出“嘿”字样到我的控制台。 因此,我怀疑这与您实现的IIdentifierRenamer
interface
有关,并且您的所有依赖项都是在compile-time但不是在run-time找到的。
一个选项是将 package 所有依赖项放入jar
文件中,以便在运行时可用。
我建议您为此使用构建工具,例如 Maven 到 Gradle。
就在最近帮助遇到类似问题的人,但他们已经“完善”了他们的项目...... 错误:package 不存在
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.