gpt4 book ai didi

java - Eclipse IDE 能够生成 javacard cap 文件,但在命令行中我遇到此错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:08 37 4
gpt4 key购买 nike

以下错误迫使我在不使用 IDE 的情况下在命令行中深入研究 cap 文件的构建过程。现在,我可以使用 java/javac 系列命令从命令行构建 cap 文件。但是我有一个小程序,如果通过 eclipse IDE 构建,它会成功创建一个 cap 文件,但当我尝试在命令行中构建时遇到错误。当我尝试正确设置 gradle build设置/环境时,我也遇到了同样的错误。这是错误:

[ant:convert] [ INFO: ]     Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
[ant:convert]
[ant:convert]
[ant:convert] warning: You did not supply export file for the previous minor version of the package
[ant:convert] [ INFO: ] conversion completed with 1 errors and 1 warnings.
[ant:convert] error: Class org/dx/tools/TestApplet, specified in -applet option, is abstract.

请注意,这是一个正在运行且经过测试的小程序,与使用此小程序的其他小程序结合在一起。这是在 Eclipse IDE 中构建的。

我还可以生成 .class 文件。问题出在将类文件转换为 cap 文件期间。

它的样子是这样的:

package org.dx.tools;

import org.globalplatform.GPSystem;
import org.globalplatform.SecureChannel;

import javacardx.apdu.ExtendedLength;
import javacard.framework.ISO7816;
import javacard.framework.ISOException;
import javacard.framework.Util;
import javacard.framework.APDU;
import javacard.framework.APDUException;
import javacard.framework.Applet;
import javacard.framework.AppletEvent;

public abstract class TestApplet extends Applet implements AppletEvent,
ExtendedLength {
...
}

.cap 是其他五个之一。其他的不是抽象的,而是继承自这个的。由于它是在 eclipse IDE 中构建的,因此我实际上可以通过获取 IDE 的输出来构建其他 cap 文件。首先,我 jar 类,因为正如我所说,我可以创建类并提供给 java 转换命令来构建其他 caps,并且我还使用 IDE 生成的 TestApplet.exp

更新:2019/11/17 Here是能够从 .class 构建到 .cap 的实际 java 命令选项。我从 Eclipse IDE 转换日志中获取了这一点。

如果答案可以确认这是当前的 gradle 限制,那么我会接受这个答案。如果答案可以显示什么是正确的 gradle 设置以使其正常工作,那么我会接受这个答案。谢谢。

最佳答案

这很可能是由于链接到较新或较旧版本的库,而在构建过程中针对不同的 Java Card 版本。请注意,转换器创建预链接的代码,因此它期望链接到正确的版本。

这与 Java SE 不同,在 Java SE 中,类可以在运行时链接,并且方法和字段的位置并不重要,因为它们是在运行时创建的。

关于java - Eclipse IDE 能够生成 javacard cap 文件,但在命令行中我遇到此错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58832802/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com