0

Java 中的 import 语句似乎很奇怪,我已经检查了 Java The Complete Reference,但我不明白为什么有些东西不起作用。

我有两个文件,一个位于 first/mysql/MySQLAccess.java 中,另一个位于 first/mysql/test/Main.java 中,后者中 first.mysql.MySQLAccess 的导入语句不起作用。

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/test/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
4

1 回答 1

0

最可能的原因 - 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
于 2013-05-01T09:25:04.493 回答