社区
Java SE
帖子详情
#包引用的问题!
Gooing
2004-09-16 05:40:32
我在一个包中写了两个类
其中一个用到了另一个
//A.java
package pack;
public class A {
public String getId (){
return "a d ID" ;
}
};
//B.java
package pack;
public class B {
public void test(){
A a = new A();
}
}
结果在编译B.java的时候出了问题:
找不到A
请问:该如何做?
要修改 classpath 吗?
...全文
153
16
打赏
收藏
#包引用的问题!
我在一个包中写了两个类 其中一个用到了另一个 //A.java package pack; public class A { public String getId (){ return "a d ID" ; } }; //B.java package pack; public class B { public void test(){ A a = new A(); } } 结果在编译B.java的时候出了问题: 找不到A 请问:该如何做? 要修改 classpath 吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Gooing
2004-09-17
打赏
举报
回复
嘿嘿
谢啦
zcjl
2004-09-17
打赏
举报
回复
如果只想知其然,以后命令行编译时就用javac -d . *.java
或者是用ant做make工具
当然,用IDE也是很不错的选择
要想搞清楚这个问题,就得多找些java虚拟机和classloader的资料看看
然后把心得拿来给大家分享,^_^
zcjl
2004-09-17
打赏
举报
回复
因为在你用javac B.java编译时
classpaht中的那个“.”指向的是E:\pack
编译器会以这个目录为基础,寻找pack/A.class的存在
Gooing
2004-09-17
打赏
举报
回复
通常classpath中都会设置".",这个小点代表了当前路径
----------------------------
我已经设置了“.”这个CLASSPATH
并且文件结构是这样的:
E:\
|
-pack
|
--A.java
--B.java
按理说,B.JAVA 应该是可以找到A.CLASS 的
可是,你为什么要在里面加一个pack包呢?
--pack
|
--A.class
(这是按你的方法做的,然后就出了这么一部分)
zcjl
2004-09-17
打赏
举报
回复
javac -d . A.java
加上-d有何目的?
----------------------------------
直接运行javac,会有提示信息,告诉你各个编译参数的意义
zcjl
2004-09-17
打赏
举报
回复
classpath的问题
在编译B的时候,需要遍历classpath,查找pack/A.class的存在
通常classpath中都会设置".",这个小点代表了当前路径
所以用javac -d . A.java编译,自动生成包路径,或是手工把A.class放到对应的包路径中,就可以使编译B.java的时候能正确找到A
bobxp
2004-09-17
打赏
举报
回复
javac -d . A.java
加上-d有何目的?
又为何要新建pack文件夹?把A.class放到里面?
Gooing
2004-09-17
打赏
举报
回复
可以le
楼上的,你这样做的原因是什么?
zcjl
2004-09-17
打赏
举报
回复
解决办法:
1.把A.java和B.java放在同一目录下,用javac *.java编译
2.javac -d . A.java
javac B.java
3.javac A.java,然后新建文件夹pack,把A.class放到里面
再javac B.java
tiger_shi
2004-09-17
打赏
举报
回复
A的构造函数呢?
Gooing
2004-09-17
打赏
举报
回复
还是不行
9306zl9306
2004-09-16
打赏
举报
回复
//A.java
package pack;
public class A {
public String getId (){
return "a d ID" ;
}
};
//B.java
package pack;
//加一个引入试试看
import pack;
public class B {
public void test(){
A a = new A();
}
}
Gooing
2004-09-16
打赏
举报
回复
有
MartinWang
2004-09-16
打赏
举报
回复
classpath里是否有"."也就是当前目录?
Gooing
2004-09-16
打赏
举报
回复
当然在一个目录下了
你试的没问题?
射天狼
2004-09-16
打赏
举报
回复
我试了一下,没问题啊,你两个文件是在一个目录下吗??!
解决非ROS环境下python
包
引用
错误
问题
本文介绍了一种在非ROS环境中使用Python时遇到的导入错误
问题
,并提供了具体的解决方案。错误出现在尝试导入ROS环境下的Python 2.7
包
,而当前环境为Python 3.7。通过调整~/.bashrc文件中的PYTHONPATH环境变量来解决
问题
。
python
包
之间
引用
_python 子
包
引用
父
包
和其他子
包
本文详细介绍了如何在Python项目结构中,如projectdir下的子
包
间(如core, common, subcore等)进行跨目录导入,
包
括import common模块和util、log模块的示例,以及使用script_abspath和include_dir函数实现路径管理的技巧。
告别std_msgs!ROS 2自定义接口(Message/Service)的配置、编译与验证全流程避坑指南
本文详解ROS 2中自定义Message/Service接口的完整开发流程,涵盖专用接口
包
创建、.msg/.srv文件设计原则、CMakeLists.txt与package.xml关键配置、增量构建策略、跨
包
引用
架构及依赖管理。重点规避因配置错误导致的90%构建失败
问题
,并提供接口验证三步法与性能优化参数调校方案。
避开这个坑!EasyExcel自定义Converter时90%人会犯的3个错误
本文深入解析EasyExcel自定义Converter开发中的核心机制与典型
问题
,重点剖析
包
引用
错误、注解配置遗漏及类型匹配失效这三大高频缺陷;涵盖 Converter 接口实现要点、双向转换对称性保障、空值处理策略,并延伸至枚举映射、动态码表、批量性能优化等高级实践,强调单元测试、日志监控与线程安全等工程化要求。
【Vue3源码】1.搭建Monorepo环境进行Vue3学习开发
作者计划学习Vue3源码并分享搭建框架过程。本文介绍了Monorepo管理代码方式,对比其与其他结构区别,分析优缺点。详细阐述搭建Monorepo环境步骤,
包
括安装pnpm、项目初始化、配置工作目录、构建项目及处理
包
引用
,为后续写Vue3源码做准备。
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章