博主今天用java调用jbcryot的库实现了一个哈希加密,在自己电脑上跑的比较慢。算一个16位的要几秒钟于是我就想放自己的腾讯学生云上试试速度。

java是JDK 10.0.2

环境变量之前就配置好了,使用

java -version
javac

这两个指令都可以正常输出,没毛病。使用javac也可以成功编译文件,但是当我使用java 包名.类名却发现无法运行提示

Error: Could not find or load main class jbcrypt.Test
Caused by: java.lang.ClassNotFoundException: jbcrypt.Test

what?怎么可能呢,于是我写了一个helloword来测试~

Error: Could not find or load main class HelloWord
Caused by: java.lang.ClassNotFoundException: HelloWord

(・◇・)? **P。冷静冷静。先到自己电脑上试试~

PS D:\C> java HelloWord
HelloWord
PS D:\C>

正常输出没毛病啊,喵喵喵?

没辙了,Google一下  哦不,是百度一下!

查看了一下都是说使用java 类名后面不能带class什么的。突然看到一个人和我的情况一样。但是他的javac无法输出。我的却可以。下面的回答是你的环境变量配置有问题。于是我去看了看我的环境变量

JAVA_HOME=/data/java/jdk-10.0.2
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

在和对方变量对比了一下发现对方的

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

是这样写的,为啥要加上这个呢?

查了一下资料,解释如下:

  1.  “:”冒号,linux中用于分割路径,Windows中用“;” 分割。,在此分割JAVA_HOME和其他环境变量($PATH)
  2.  CLASSPATH中的 “.” 不能丢失。CLASSPATH指引到tools.jar,才可以在任意目录下用“javac”命令

使用vim命令编辑我们的配置文件

vim /etc/profile

i进入插入模式

然后修改:

JAVA_HOME=/data/java/jdk-10.0.2
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH

修改完成后按"ESC" 退出vim 插入模式 ,再键入

:wq

保存退出

是配置文件立即生效

source /etc/profile

然后再输入

java -version
//或者是
javac

来验证配置是否生效~

最后当然要运行一下程序来测试啦!

-rw-r--r-- 1 root root 28007 Aug  8 19:14 BCrypt.java
-rw-r--r-- 1 root root   422 Aug  8 20:18 HelloWord.class
-rw-r--r-- 1 root root   113 Aug  8 20:17 HelloWord.java
-rw-r--r-- 1 root root  1553 Aug  8 19:28 Test.java
[root@VM_0_9_centos bcrypt]# javac -d . *.java
[root@VM_0_9_centos bcrypt]# java jbcrypt.Test
请输入密码:

(〃'▽'〃)程序成功运行!问题解决~

很久没发博客了,今天遇到一个小问题来吐槽一下。嘿嘿

本人JAVA新手,各位请多多指教(*^▽^*)


蒲公英的奇迹 夏天的雪花