java 错误: 找不到符号
首先代码没有错误,在eclipse里显示结果,但是在控制台却无法编译,提示错误:找不到符号。我现在考虑的是环境变量配置问题。于是问题就是,编译一个单独的java文件不出错...
首先代码没有错误,在eclipse里显示结果,但是在控制台却无法编译,提示错误:找不到符号。
我现在考虑的是环境变量配置问题。于是问题就是,编译一个单独的java文件不出错,但是引用一个.java文件的时候,就无法编译,提示找不到JTextAreaFrameClass()
//TestTextAreaClass.java
import javax.swing.*;
public class TestTextAreaClass {
public static void main(String[] args) {
JTextAreaFrameClass frame = new JTextAreaFrameClass();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
//JTextAreaFrameClass.java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class JTextAreaFrameClass extends JFrame implements ActionListener {
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 300;
JTextField textField;
JTextArea textArea;
JButton OkButton;
JPanel panel;
JScrollPane scrollPane;
public JTextAreaFrameClass() {
setTitle("JTextArea 与JScrollPane配合使用的应用实例 ");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
textField = new JTextField(20);
textArea = new JTextArea(10, 20);
panel = new JPanel();
OkButton = new JButton("OK");
scrollPane = new JScrollPane(textArea);
getContentPane().add(textField, BorderLayout.NORTH);
getContentPane().add(scrollPane, BorderLayout.CENTER);
getContentPane().add(panel, BorderLayout.SOUTH);
panel.add(OkButton);
OkButton.addActionListener(this);
textArea.setEditable(false);
setVisible(true);
}
public void actionPerformed(ActionEvent e) { //事件处理
String text = textField.getText();
textArea.append(text + "\n");
}
} 展开
我现在考虑的是环境变量配置问题。于是问题就是,编译一个单独的java文件不出错,但是引用一个.java文件的时候,就无法编译,提示找不到JTextAreaFrameClass()
//TestTextAreaClass.java
import javax.swing.*;
public class TestTextAreaClass {
public static void main(String[] args) {
JTextAreaFrameClass frame = new JTextAreaFrameClass();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
//JTextAreaFrameClass.java
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class JTextAreaFrameClass extends JFrame implements ActionListener {
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 300;
JTextField textField;
JTextArea textArea;
JButton OkButton;
JPanel panel;
JScrollPane scrollPane;
public JTextAreaFrameClass() {
setTitle("JTextArea 与JScrollPane配合使用的应用实例 ");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
textField = new JTextField(20);
textArea = new JTextArea(10, 20);
panel = new JPanel();
OkButton = new JButton("OK");
scrollPane = new JScrollPane(textArea);
getContentPane().add(textField, BorderLayout.NORTH);
getContentPane().add(scrollPane, BorderLayout.CENTER);
getContentPane().add(panel, BorderLayout.SOUTH);
panel.add(OkButton);
OkButton.addActionListener(this);
textArea.setEditable(false);
setVisible(true);
}
public void actionPerformed(ActionEvent e) { //事件处理
String text = textField.getText();
textArea.append(text + "\n");
}
} 展开
2个回答
展开全部
是你的环境变量的问题,classpath里没有配置 “.”
原理:
1、编译TestTextAreaClass.java自动编译TestTextAreaClass,这个是javac的特性,不是eclipse的。
2、javac TestTextAreaClass.java这个命令,会自动编译TestTextAreaClass引用的相关类也就是会自动编译JTextAreaFrameClass;这里存在一个类路径的计算问题,javac TestTextAreaClass.java这个命令,如果没有在classpath里没有配置 “.”,是不会把当前目录当作类路径的。也就造成了,明明TestTextAreaClass.java和JTextAreaFrameClass在同一个目录中,javac却找不到类的错误。
原理:
1、编译TestTextAreaClass.java自动编译TestTextAreaClass,这个是javac的特性,不是eclipse的。
2、javac TestTextAreaClass.java这个命令,会自动编译TestTextAreaClass引用的相关类也就是会自动编译JTextAreaFrameClass;这里存在一个类路径的计算问题,javac TestTextAreaClass.java这个命令,如果没有在classpath里没有配置 “.”,是不会把当前目录当作类路径的。也就造成了,明明TestTextAreaClass.java和JTextAreaFrameClass在同一个目录中,javac却找不到类的错误。
TableDI
2024-07-18 广告
2024-07-18 广告
`VLOOKUP` 匹配出错误的数据通常是由于以下几个原因:1. **查找值错误**:输入的查找值与数据源中的值不匹配,可能是因为拼写错误、大小写不一致或存在不可见的字符。2. **查找区域设置错误**:查找区域的首列必须包含要查找的值,且...
点击进入详情页
本回答由TableDI提供
推荐于2017-04-23
展开全部
你这样自己手动编译的话,需要先编译你调用的那个JTextAreaFrameClass
类,然后再编译 TestTextAreaClass 类,如果在eclipse 里面会自动为你编译,不需要这么麻烦的操作
类,然后再编译 TestTextAreaClass 类,如果在eclipse 里面会自动为你编译,不需要这么麻烦的操作
更多追问追答
追问
先编译TestTextAreaClass.java
可TestTextAreaClass.java没有main函数,同样无法编译的!!
以前编译成功的,最近重装系统,出问题了,所以怀疑是环境变量出问题了。。。
追答
额,就算没有main 也能编译通过吧,你这两个类都是在一个.java文件里面么还是分开的两个文件?
1. 如果是分开的两个文件,执行下面这些命令
javac JTextAreaFrameClass.java
javac TestTextAreaClass.java
java TestTextAreaClass
2. 如果是一个文件,用内部类,那么你的那个没有main函数的那个需要改成 private static 类型
然后删除重复导包,执行下面命令
javac TestTextAreaClass.java
java TestTextAreaClass
只要你执行java 不出现 :
'java' 不是内部或外部命令,也不是可运行的程序或批处理文件。
你的环境变量就没有什么问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |