由于学习C/C++的习惯,不太喜欢用IDE来写代码,所以在学习java的时候,也没有使用教程上的IDE来编写程序。编译java文件也是用命令行编译,所以在学习java中的package的时候遇到程序包 xxx 不存在的问题。
 
如图:
error
  
经过两个小时的不断百度、谷歌、尝试,终于解决了问题,也得出了结论。
  
我以user.java为自创包内的类,student.java调用user类为例。
  
user.java 代码如下:
  

1
2
3
4
5

public class user
{
public int a;
}

 student.java d代码如下

1
2
3
4
5
6
7
8
9
public class student
{
public static void main(String [] args)
{
user u = new user();
u.a = 3;
System.out.println(u.a);
}
}

  
其中user.java在oo包中,studen.java在top包中
  
我以二种情况说明
  

  1. 当文件目录为下图时: (也就是oo包与student.java在同一目录下时)

同一目录
  
user.java文件要在前面加上 package oo;
  

1
2
3
4
5
6
package oo;

public class user
{
public int a;
}

  
student.java文件要加上import oo.user;

1
2
3
4
5
6
7
8
9
10
11
import oo.user;

public class student
{
public static void main(String [] args)
{
user u = new user();
u.a = 3;
System.out.println(u.a);
}
}

  
在top目录下编译命令为javac student.java,执行命令为java student
  
在src目录下编译命令为:javac -cp top top/student.java ,其中-cp 为指定程序包路径 :top,但运行运行的话,要进入top目录,和上面一样的命令运行。在此目录下执行尚未找到解决办法
  

  1. 当文件目录为下图: (即oo包和student.java不在同一目录下时)

不同目录
  
文件内容和第一种情况略有不同:user.java文件前面加上 package oo; , student.java文件加上package top;   import oo.user;
  

1
2
3
4
5
6
7
8
9
10
11
12
13
14

package top;

import oo.user;

public class student
{
public static void main(String [] args)
{
user u = new user();
u.a = 3;
System.out.println(u.a);
}
}

  
在top目录下编译命令为javac -cp ../ student.java , 执行:java -cp ../ top.student
  
在src目录下编译运行:
  
编译:javac top/student.java    运行 : java top/student

 

– ©博主原创,转载请注明出处 –

最后更新: 2019年08月21日 04:39

原始链接: https://yuanspace.top/2019/02/04/JavaPackage/

× 请我吃糖~
打赏二维码