将javaclass转成jar作为外部库使用
Convert java class to jar and use it as external library
我目前正在研究安全加密算法。我找到了我需要的 java 实现,所以为了不再发明轮子,我想将算法 class 转换为 jar,然后将其作为外部库导入到我的项目中。
我试过:
jar -cvf result.jar class.class
它创建了一个 .jar
文件,但是一旦我尝试在 Intellij File>Project Structure>Libraries>+
中使用它并且在使用它之后,它在代码中无法识别它的给定名称(local.java.algorithm
).
最后我想做的是:simple java class > jar > add to project as external library > use it in code
如何让这个jar可以被IDEA识别?
当您创建包含 classes 的 JAR 文件时,JAR 文件的结构需要反映包名称结构。
例如,如果您有一个名为 MyClass.java
的 class,其内容如下所示:
package local.java.algorithm;
// imports
public class MyClass ... {
}
您将其编译为目录 local/java/algorithm 中的 MyClass.class。然后 JAR 文件的结构需要是:
/
/local
/local/java
/local/java/algorithm
/local/java/algorithm/MyClass.class
我怀疑你真的是这样创建的:
/
/MyClass.class
这意味着 Intellij(或 javac
或其他任何东西)将无法解析
import local.java.algorithm.MyClass;
在编译时或在运行时。
我目前正在研究安全加密算法。我找到了我需要的 java 实现,所以为了不再发明轮子,我想将算法 class 转换为 jar,然后将其作为外部库导入到我的项目中。
我试过:
jar -cvf result.jar class.class
它创建了一个 .jar
文件,但是一旦我尝试在 Intellij File>Project Structure>Libraries>+
中使用它并且在使用它之后,它在代码中无法识别它的给定名称(local.java.algorithm
).
最后我想做的是:simple java class > jar > add to project as external library > use it in code
如何让这个jar可以被IDEA识别?
当您创建包含 classes 的 JAR 文件时,JAR 文件的结构需要反映包名称结构。
例如,如果您有一个名为 MyClass.java
的 class,其内容如下所示:
package local.java.algorithm;
// imports
public class MyClass ... {
}
您将其编译为目录 local/java/algorithm 中的 MyClass.class。然后 JAR 文件的结构需要是:
/
/local
/local/java
/local/java/algorithm
/local/java/algorithm/MyClass.class
我怀疑你真的是这样创建的:
/
/MyClass.class
这意味着 Intellij(或 javac
或其他任何东西)将无法解析
import local.java.algorithm.MyClass;
在编译时或在运行时。