2013-05-01 4 views
0

Java의 가져 오기 문이 이상하게 작동하는 것처럼 보였습니다. Java 전체 참조로 확인했는데 왜 무언가가 작동하지 않는지 알 수 없습니다.Java 가져 오기 문제

첫 번째/mysql/MySQLAccess.java에 하나씩 있고 첫 번째/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 

:

[email protected]:~/devel/java/mysqlexample$ javac first/mysql/test/Main.java 

소스 코드 : 첫번째/mysql을/MySQLAccess.java : http://pastebin.com/7WkewTEf 첫번째/mysql을 /test/Main.java : 나는 이상한 행동에 대한 단서를 발견 http://pastebin.com/aSsn34fX

는, 자바는 ... MySQLAccess.class 같은 아닌 것 같아

[email protected]:~/devel/java/mysqlexample$ java first/mysql/MySQLAccess.class 
Error: Could not find or load main class first.mysql.MySQLAccess.class 
+3

당신은 컴파일하고 방법을 말했다하지 않은 또는 어떤 오류가 그것을 만들어 너를 돕기가 아주 어렵다. –

+0

어디서 컴파일 했습니까? 컴파일러가 두 번째 파일을 찾을 수 있습니까? 즉, 컴파일러의 클래스 경로를 지정해야합니까? – Rup

+0

나는 mysqlexample이라는 폴더에서 첫 번째/mysql/MySQLAccess.java와 첫 번째/mysql/test/Main.java의 Java 코드로 컴파일러를 실행했다. 클래스 파일은 소스 파일과 함께있다. –

답변

0

가장 일반적인 원인 - first.mysql.MySQLAccess.java가 처음에 성공적으로 컴파일되지 않았거나/mysql에서 직접 컴파일되어 패키지 구조가 무효화되었습니다. 소스가있을 수 있지만 first.mysql.test.Main.java에 관한 한 first.mysql.MySQLAccess.class 만 찾습니다.

첫째,이 구조가 있는지 확인 :

mysqlexample 
    |--first 
     |--mysql 
      |--test 
      |-- Main.java 
     MySQLAccess.java 

그런 다음이 명령을 실행하십시오

[email protected]:~/devel/java/mysqlexample$ javac first/mysql/MySQLAccess.java 

[email protected]:~/devel/java/mysqlexample$ javac first/mysql/test/Main.java 
+0

"first/mysql/MySQLAccess.java를 사용합니다. 또는 더 이상 사용되지 않는 API를 무시 "하지만 MySQLAccess.java .class 파일을 생성 한 것으로 보입니다. 그것은 감가 상각되는 java.sql.Date를 사용하여 Calendar로 이동해야합니까? 난 그냥 예제를 실행 싶었어요. –

+0

괜찮습니다. 그건 문제가되지 않습니다. MySQLAccess를 컴파일 할 때 사용했던 명령을 공유 할 수 있습니까? – Jops

+0

javac first/mysql/MySQLAccess.java –