2014-09-27 180 views
-2

我有2类,每个类是在不同的文件夹如何访问另一个包中的另一个类?

Main类的src/mainclass/Main.java
Display类的src/swingclass/Display.java

主类:

package src.mainclass; 

import src.swingclass.Display; 

public class Main{ 
    public static void main(String[] args){ 
     Display sM = new Display();  
    } 
} 

显示类别:

package src.swingclass; 

public class Display{ 
    public Display(){ 
     System.out.println("Display class");   
    } 
} 

我在cmd上运行它并声明为

错误:程序包src.swingclass不存在

还有,主类看不到Display类。

总的来说,我有3个错误。

我知道使用IDE将使这更容易,但我想学习这个CMD。我在网上跟着教程,但它仍然有错误。

+0

你的编译顺序是什么? – maskacovnik 2014-09-27 16:08:16

+1

*我在cmd *上运行它:如何?从哪个目录?这是您的问题中缺少的关键部分。顺便说一句,你可能没有运行任何东西。你试图编译类。这是完全不同的。 – 2014-09-27 16:09:40

+0

你使用合适的目录结构吗? – 2014-09-27 16:09:49

回答

0

我相信你应该摆脱的包src部分,即

package swingclass; 

... 

,并导入它想:

import swingclass.Display; 
+0

按照惯例,这是正确的,但技术差异在哪里? – 2014-09-27 16:09:24

+0

@still_learning技术上的差异就在于这个事实,那个OP似乎和 – 2014-09-27 16:11:04

0
  1. 删除所有的 “SRC”。在所有文件中
  2. 更改为src目录
  3. 类型:javac mainclass/Main。 java的
  4. 类型:javac的swingclass/Display.java
  5. 类型:JAVA mainclass.Main
+0

这个结构混淆了。 – gray 2014-09-27 16:18:15

0

使用-classpath标志应该帮助您解决问题。

 
javac -d "theClassPathNameYouWant" "src/swingclass/Display.java" 

javac -d "theClassPathNameYouWant" "src/swingclass/Main.java" 

java -classpath "theClassPathNameYouWant" swingclass.Main 
0

转到src文件夹级别(去src文件夹中)在命令提示符,然后使用命令

javac -classpath . src/mainclass/Main.java 

编译(这将隐式编译Display类为好,因为它通过Main类)和

java -classpath . src/mainclass/Main 

需要运行Main类。

.指示当前目录(在您的情况下,src文件夹),然后指定其他路径(到源/类文件)的相对路径。

+0

谢谢你 – gray 2014-09-27 16:20:20

0

的javac -d斌-sourcepath SRC <路径从src目录主类,你的情况这将是从SRC/mainclass/Main.java >

java命令斌src.mainclass一个文件夹了。Main(设置类路径到bin文件所在的bin根目录,scr是你的软件包启动的地方)