繁体   English   中英

java 编译失败,其中带有 jar 文件的类路径

[英]java compile failed where classpath with jar files

目录中有一个名为jar353.jar 我新建了一个 java class 并导入了一个 class 在353.jar

import com.coxier.test.DrawaerLayout;


class Test {
    public static void main(String[] args) {
        DrawaerLayout d = new DrawaerLayout();
    }
}

我使用以下命令编译Test.java

javac -verbose -classpath /Users/coxier/test/app/build/intermediates/transforms/dexBuilder/debug/353.jar:. TestA.java

但这里有一个错误:

error: package com.coxier.test does not exist

编辑 1

谢谢@Marquis。 我知道这个 jar 是一个 dex 格式的文件。

jar tvf 351.jar

output 是: 1080024 Thu Jul 02 17:52:10 CST 2020 classes.dex

javac与android无关。

Android 开发可以使用与 java 非常相似但不完全 java 的语言来完成。 特别是,它周围的所有基础设施,例如编译后的代码,完全是非 Java 的(例如,不针对 Android 的 java 附带的工具,例如您的 OpenJDK 安装,不知道它并且无法阅读任何内容)。

该 jar 文件包含,就 java 本身而言(而 javac 只是 java,而不是 android),完全没有:它只是不知道什么是 dex 文件,所以它被忽略了。

如果 jar 文件包含以下条目,则此代码将起作用:

/com/coxier/test/DrawaerLayout/Test.class

然后, javac -cp thatJar.jar TestA.java可以工作,假设TestA.java在当前工作目录中并且包含:

import com.coxier.test.DrawaerLayout.Test;

public class TestA {
    Test test;
}

如果您有该Test.dex文件的来源,则可以制作一个 class 文件,但听起来您需要的是TestA.java也可以使用 ZC31B32364CE19CA8FCD150A417ECCE5 进行编译and may even accept them in jars (though I recall that jars aren't a thing android does either, just like it doesn't 'do' class files).

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM