cmd窗口手工编译时找不到类的小问题

本文介绍了一个关于Java编译过程中遇到的问题及解决方法。当尝试在包t中编译两个类A和B时,出现找不到类A的错误。文章详细说明了如何通过调整文件夹路径来解决此问题。
两个文件:A.java 和 B.java 都 package 在包 t 中;
package t;
public class A{
public A(){
System.out.println("TTT");
}
}


package t;
public class B{
public static void main(String[] args){
A a = new A();
}
}


在进入cmd命令行中的 D:\MyTest\t> 文件夹下后,编译 B.java 文件总是报错:
B.java:4: 找不到符号
符号: 类 A
位置: 类 t.B
A a = new A();
^
B.java:4: 找不到符号
符号: 类 A
位置: 类 t.B
A a = new A();
^
2 错误


========
解决方法:
退出一级目录到
D:\MyTest>
然后再执行编译命令
D:\MyTest>javac t\B.java
最后执行运行命令
D:\MyTest>java t.B
### 关于合肥工业大学编译原理实验2的资料与指导 合肥工业大学编译原理实验二的内容主要涉及文法分析工具的应用以及界面设计[^5]。具体来说,该实验要求学生使用C++语言开发,并结合Windows API创建一个简易图形化界面。以下是关于其实现目标和技术细节的具体说明: #### 实验目的 实验的主要目的是让学生熟悉如何通过编程手段处理形式文法,并能够可视化展示其解析过程。这包括但不限于支持自定义输入文法规则、计算并显示`FIRST`集和`FOLLOW`集等内容。 #### 功能模块描述 1. **多窗口支持**: 提供多个独立显示区域用于呈现不同型的中间结果或最终输出数据。 2. **集合运算展示**: - 计算指定上下文中符号串可能开头字符组成的集合(`FIRST`)。 - 确定特定非终结符后续可能出现哪些终端标记构成另一重要属性——即所谓跟随列表(`FOLLOW`)。 3. **语法转换机制**: - 自动检测是否存在直接或者间接形式上的左递归现象; - 如果发现此结构,则需将其改写成符合LL(1)条件的新版本以便进一步处理。 4. **交互式验证平台构建**,允许用户加载外部文件作为测试案例导入系统内部执行相应操作流程直至得出结论为止。 #### 技术选型建议 由于题目明确指出要用到C++配合WinAPI来搭建整个应用程序框架,因此可以考虑如下几个方面来进行实际编码工作: - 使用标准模板库(STL)中的容器如vector,map等管理复杂的数据关系; - 利用MFC(Microsoft Foundation Classes)简化GUI组件布局设置过程从而减少纯手工绘制控件带来的繁琐程度; 下面给出一段简单的伪代码片段用来演示部分核心逻辑实现思路: ```cpp // 定义必要的全局变量存储相关信息 std::map<char,std::set<char>> firstSets; // 存储每个非终结符对应的first集合 std::map<char,std::set<char>> followSets;// 存储每个非终结符对应的follow集合 void computeFirstSet(const std::string& grammar){ /* ... */ } bool hasDirectLeftRecursion(const std::string& productionRule){ /* ... */ } void eliminateIndirectLeftRecursions(std::list<std::string>& productionsList){ /* ... */ } int main(){ // 初始化环境读取配置参数初始化UI等等省略... while(true){ // 主循环等待事件触发响应各请求动作 switch(getUserCommand()){ case CMD_COMPUTE_FIRST_SETS:{ string inputGrammar=getInputFromUser(); computeFirstSet(inputGrammar); break;} case CMD_CHECK_FOR_LEFT_RECURSION:{ list<string> rules=loadProductionsFromFile(); bool found=false; for(auto &rule :rules ){ if(hasDirectLeftRecursion(rule)){ cout<<"Found direct left recursion:"<<rule<<endl; found=true; } } if(!found){ eliminateIndirectLeftRecursions(rules ); } saveModifiedRulesToFile(rules ); break;} default:{/* handle other commands */}} } return EXIT_SUCCESS; } ``` 以上仅为示意性质的实际项目应当更加严谨细致考虑到各种边界情况异常状况等因素影响正常运行效果.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值