使用java命令出现“Error: A JNI error has occurred, please check your installation and try again“的一种解决方案

使用java命令出现"Error: A JNI error has occurred, please check your installation and try again"的一种解决方案

Windows系统下使用cmd进行Java程序的编译与运行。

  在操作过程中出现错误,具体为javac编译成功,而java运行报错;如下图:

错误为发生JNI错误,请检查安装并重试。

  检查原因可以得知是由于javac与java版本不同所致。

  分别使用:

javac -version
java -version

检查,可以看到如下图结果:

  可以确定报错原因。

  接下来是解决。

  首先进入高级系统设置界面,如下图:

单击环境变量选项卡,如下图:

  单击系统变量中的Path变量,如下图:

可以看到存在两个版本的java,而我目前使用的是%JAVA_HOME%\bin路径,所以将此选项上移到另一个java上方即可,如下图:

但需要注意的是,如果Path变量中的第一行为%开头,那么当你再次点击Path选项卡的时候会是类似于下图这种格式的显示:

所以为了方便显示系统变量,我们一般让Path变量中的第一行为盘符开头,即可为列表显示:

点击一系列确定,完成设置,再次实验一开始的编译、运行命令,如下图:

  运行成功,问题解决。

当遇到 "0/1 nodes are available: 1 Insufficient nvidia.com/gpu. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod." 这样的错误时,说明有一个节点上GPU资源不足以满足即将调度的Pod的需求。这是因为该节点没有足够的nvidia GPU资源来运行具有特定需求的容器。 解决这个问题的步骤通常包括: 1. **确认Pod的GPU请求**[^2]:查看受影响的Pod配置,确认它是否指定了对GPU(如NVIDIA Tesla)的数量或类型有特定的资源请求。 ```yaml apiVersion: v1 kind: Pod metadata: name: my-gpu-pod spec: containers: - name: my-container image: my-image resources: requests: nvidia.com/gpus: 1 ``` 2. **检查集群资源分配**:确保有足够的GPU资源供应给节点。这可以通过`kubectl get nodes -o wide`命令查看每个节点的资源配置,特别是GPU。 3. **更新或调整Node的标签或Taints**:如果发现某个节点上的GPU资源已满,可以考虑更新其标签或添加Taint以阻止其他对GPU敏感的Pod在其上运行,直到有足够的资源释放出来。 ```shell kubectl taint nodes <node-name> nvidia.com/gpu=true:NoSchedule ``` 4. **调整Pod的优先级或反亲和性**:如果GPU资源不是必需的,可以降低Pod的优先级,使其更容易被预调度到其他节点。或者,如果你设置了Pod的反亲和性规则,确保这些规则允许Pod在非首选的节点上运行。 5. **如有必要,扩容GPU资源**:如果长期缺乏GPU资源,可能需要扩大集群规模或增加硬件设备。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YunKaiFir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值