Java 程序仅在特定的pc上运行

Java 程序仅在特定的pc上运行,java,class,compilation,acm-java-libraries,Java,Class,Compilation,Acm Java Libraries,我不得不写一个创建信用卡号的程序。我写了3个类,主类,从中我可以得到卡片的类型和长度(例如,Visa 15位),luhn公式和一个创建卡片的类。从主课我把卡片的类型和长度发送到最后一节课。因此,我像这样开始了最后一个类(不是所有的代码,只是第一行): 这显然是错误的(编译时出错),但问题是只有我的pc(我也在那里编写了这些类)可以运行它,而不会出现编译错误并得到正确的结果。我知道问题在哪里,其他两个类都是正确的,但我想知道如何在我的电脑上运行而不出现问题 Ps:我使用了acm软件包,我的jdk是

我不得不写一个创建信用卡号的程序。我写了3个类,主类,从中我可以得到卡片的类型和长度(例如,Visa 15位),luhn公式和一个创建卡片的类。从主课我把卡片的类型和长度发送到最后一节课。因此,我像这样开始了最后一个类(不是所有的代码,只是第一行):

这显然是错误的(编译时出错),但问题是只有我的pc(我也在那里编写了这些类)可以运行它,而不会出现编译错误并得到正确的结果。我知道问题在哪里,其他两个类都是正确的,但我想知道如何在我的电脑上运行而不出现问题


Ps:我使用了acm软件包,我的jdk是1.8.031,我把它们写在记事本上+

我有相同版本的jdk,类
不编译。您可能正在对以前编译的.class执行。你确定你的代码从来不是这样的:

public class Cards extends Program {

    private int[] x;
    private int[] k;
    private int length; 
    private String type;

    public Cards(int l, String name) {
        length = l;
        x = new int[length] ;
        k = new int[length] ;
        type = name;
    }
}
我打赌是的!删除电脑中的任何文件
卡.class
后重试。

在我的编译器中,它会给出“在定义字段之前无法引用字段”

您可以将其定义为:

private int length; 
private int[] x = new int[length];
private int[] k = new int[length];
但是,该代码不清楚,因为
length
是在构造函数中分配的

也许最清楚的是这样写:

public class Cards extends Program {
    private int[] x;
    private int[] k;
    private int length; 
    private String type;
    public Cards(int l, String name) {
        this.length = l;
        this.x = new int[length];
        this.y = new int[length];
        this.type = name;
    }
}

你确定你真的编译了它吗?您可以运行已编译的代码…您可以共享所有代码吗?两次提到libik都是有效的,但是我们需要看到你所有的代码你没有运行你发布的代码,因为它没有编译。你很可能正在运行它的早期版本,没有任何错误。你是对的,我正在运行它的早期版本,非常感谢大家的帮助!!!你是对的,我正在运行它的早期版本,非常感谢
public class Cards extends Program {
    private int[] x;
    private int[] k;
    private int length; 
    private String type;
    public Cards(int l, String name) {
        this.length = l;
        this.x = new int[length];
        this.y = new int[length];
        this.type = name;
    }
}