Java中的import语句看起来很奇怪,我已经检查了Java的完整参考,我不明白为什么有些东西不能工作。
我有两个文件,一个在first/mysql/MySQLAccess.java中,另一个在first/mysql/test/Main.java中,后者中用于first.mysql.MySQLAccess的import语句不起作用。
package first.mysql.test;
import first.mysql.MySQLAccess;
MySQLAccess.java以下列开头
package first.mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
public class MySQLAccess {
我不明白为什么这个不能工作,除非我遗漏了什么,否则它应该能完美地工作。我编译了MySQLAccess.java并生成了MySQLAccess.class
Main.java:1: error: package first.mysql does not exist
import first.mysql.MySQLAccess;
^
Main.java:5: error: cannot find symbol
MySQLAccess dao = new MySQLAccess();
^
symbol: class MySQLAccess
location: class Main
Main.java:5: error: cannot find symbol
MySQLAccess dao = new MySQLAccess();
^
symbol: class MySQLAccess
location: class Main
3 errors
我使用以下命令进行编译:
john@fekete:~/devel/java/mysqlexample$ javac first/mysql/test/Main.java
源代码: first/mysql/MySQLAccess.java:http://pastebin.com/7WkewTEf first/mysql/http://pastebin.com/7WkewTEf/Main.java:http://pastebin.com/aSsn34fX
我发现了奇怪行为的线索,java看起来不像MySQLAccess.class……
john@fekete:~/devel/java/mysqlexample$ java first/mysql/MySQLAccess.class
Error: Could not find or load main class first.mysql.MySQLAccess.class
发布于 2013-05-01 09:25:04
最可能的原因是- first.mysql.MySQLAccess.java一开始没有成功编译,或者直接在/mysql下编译-否定了包结构。源代码可能就在那里,但就first.mysql.test.Main.java而言,它只会查找first.mysql.MySQLAccess.class。
首先,确保你有这样的结构:
mysqlexample
|--first
|--mysql
|--test
|-- Main.java
MySQLAccess.java
然后发出以下命令:
john@fekete:~/devel/java/mysqlexample$ javac first/mysql/MySQLAccess.java
john@fekete:~/devel/java/mysqlexample$ javac first/mysql/test/Main.java
https://stackoverflow.com/questions/16315575
复制相似问题