gpt4 book ai didi

Java类可以编译但无法加载

转载 作者:行者123 更新时间:2023-12-01 17:24:09 25 4
gpt4 key购买 nike

我已经编译了一个类并且文件显示了,但我无法使用 java 运行它或从其他类中使用它,其中 java 或 javac 的行为就好像它不存在一样。

编译...

john@fekete:~/devel/java/mysqlexample$ javac first/mysql/MySQLAccess.java 
Note: first/mysql/MySQLAccess.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

对于java来说似乎不存在...

john@fekete:~/devel/java/mysqlexample$ java first/mysql/MySQLAccess.class
Error: Could not find or load main class first.mysql.MySQLAccess.class
john@fekete:~/devel/java/mysqlexample$ java first/mysql/MySQLAccess
Error: Could not find or load main class first.mysql.MySQLAccess

我无法从其他类中使用它。

first/mysql/test/Main.java:3: error: cannot find symbol
import first.mysql.MySQLAccess;
^
symbol: class MySQLAccess
location: package first.mysql

这些文件的结构如下,我从该结构的根进行编译。

john@fekete:~/devel/java/mysqlexample$ ls -l first/mysql/
total 12
-rwxr-xr-x 1 john john 3625 May 2 07:59 MySQLAccess.class
-rw-r--r-- 1 john john 3052 May 2 07:59 MySQLAccess.java
drwxr-xr-x 2 john john 4096 May 2 08:02 test
john@fekete:~/devel/java/mysqlexample$ ls -l first/mysql/test/
total 4
-rw-r--r-- 1 john john 205 May 2 08:02 Main.java

导入first.mysql.*不起作用。

也许我需要更改我的类路径。

john@fekete:~/devel/java/mysqlexample$ echo $CLASSPATH 
/usr/local/mysql-connector-java/mysql-connector-java-5.1.24-bin.jar

最佳答案

java 命令调用 JVM,它不运行源代码。所以

java first/mysql/MySQLAccess.java

不会像写的那样工作。相反,您需要调用资源名称,即

java first.mysql.MySQLAccess

除了上面的命令行可能无法工作,因为您可能还没有配置您的JVM来搜索当前目录中的类层次结构树。您可能想要类似的东西

java -classpath . first.mysql.MySQLAccess

加载位于first/mysql/MySQLAccess.class的类;但是,这并不是故事的全部。 CLASSPATH 环境变量也会发挥作用,这就是它加载 mysql-connector-java-5.1.24-bin.jar 的方式。但是,如果您遇到问题,我建议您明确包含它,就像这样

java -classpath .:/usr/local/mysql-connector-java/mysql-connector-java-5.1.24-bin.jar first.mysql.MySQLAccess

关于Java类可以编译但无法加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327255/

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