我正在尝试测试 JDK 16 中作为孵化器模块引入的新 Vector API。为此,我有以下类:
import jdk.incubator.vector.FloatVector;
import jdk.incubator.vector.VectorSpecies;
public class Main {
static final VectorSpecies<Float> SPECIES = FloatVector.SPECIES_256;
static void vectorComputation(float[] a, float[] b, float[] c) {
for (int i = 0; i < a.length; i += SPECIES.length()) {
var m = SPECIES.indexInRange(i, a.length);
var va = FloatVector.fromArray(SPECIES, a, i, m);
var vb = FloatVector.fromArray(SPECIES, b, i, m);
var vc = va.mul(va).
add(vb.mul(vb)).
neg();
vc.intoArray(c, i, m);
}
}
public static void main(String[] args) {
float[] a = new float[]{1.0f, 3.0f, 2.0f};
float[] b = {1.0f, -1.0f, 5.0f};
float[] c = {1.0f, 6.0f, 1.0f};
Main.vectorComputation(a, b, c);
System.out.println(c);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令进行编译:
javac Main.java --add-modules jdk.incubator.vector
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行它时,出现以下错误。
java Main --add-modules jdk.incubator.vector
Error: Unable to initialize main class Main
Caused by: java.lang.NoClassDefFoundError: jdk/incubator/vector/Vector
Run Code Online (Sandbox Code Playgroud)
我将如何解决这门课?
Sla*_*law 10
主类之后的任何内容都被解释为应用程序的参数。您需要将命令重新排列为:
java --add-modules jdk.incubator.vector Main
Run Code Online (Sandbox Code Playgroud)