我正在尝试编译一些在我的MAC上创建TCP套接字的java代码,但是我收到错误“找不到符号” - 见下文。我包含脚本来设置Java env(但可能缺少某些东西)i并编译TCPServer.java文件。
Webcasts-MBP:~ webcastman$ ./javasetup.sh
++ cd /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
++ export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
++ JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
++ export JAVA_HOME_BIN=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin
++ JAVA_HOME_BIN=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin
++ export JAVA_HOME_LIB=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib
++ JAVA_HOME_LIB=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib
++ export JAVA_HOME_JRE=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
++ JAVA_HOME_JRE=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
++ env
TERM_PROGRAM=Apple_Terminal
JAVA_HOME_JRE=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
TERM=xterm-256color
SHELL=/bin/bash
TMPDIR=/var/folders/48/4xh_ymvn7qxgdqqs2mwl1jl80000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.aQ1oj20KfU/Render
TERM_PROGRAM_VERSION=387
OLDPWD=/Users/webcastman
TERM_SESSION_ID=163F65D6-FB50-4CBE-BEE6-DB4302EF1BCE
USER=webcastman
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.XUxsF2pGmM/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0
JAVA_HOME_BIN=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
PWD=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
LANG=en_US.UTF-8
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
HOME=/Users/webcastman
SHLVL=2
LOGNAME=webcastman
JAVA_HOME_LIB=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib
_=/usr/bin/env
++ env
++ grep JAVA
JAVA_HOME_JRE=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre
JAVA_HOME_BIN=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
JAVA_HOME_LIB=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib
++ export CLASSPATH=:.:/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib/tools.jar:/Users/webcastman/
++ CLASSPATH=:.:/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/lib/tools.jar:/Users/webcastman/
++ javac /Users/webcastman/TCPServer.java
/Users/webcastman/ServerBoard.java:5: error: cannot find symbol
public class ServerBoard extends JFrame {
^
symbol: class JFrame
/Users/webcastman/ServerBoard.java:6: error: cannot find symbol
private JTextArea messagesArea;
^
symbol: class JTextArea
location: class ServerBoard
/Users/webcastman/ServerBoard.java:7: error: cannot find symbol
private JButton sendButton;
^
symbol: class JButton
location: class ServerBoard
/Users/webcastman/ServerBoard.java:8: error: cannot find symbol
private JTextField message;
^
symbol: class JTextField
location: class ServerBoard
/Users/webcastman/ServerBoard.java:9: error: cannot find symbol
private JButton startServer;
^
symbol: class JButton
location: class ServerBoard
/Users/webcastman/TCPServer.java:19: error: cannot find symbol
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
^
symbol: variable JFrame
location: class TCPServer
/Users/webcastman/TCPServer.java:20: error: cannot find symbol
frame.pack();
^
symbol: method pack()
location: variable frame of type ServerBoard
/Users/webcastman/TCPServer.java:21: error: cannot find symbol
frame.setVisible(true);
^
Can someone tell me what is wrong
答案 0 :(得分:1)
没有看到你的代码,有点难以辨别,但是从你的错误中我相信你没有将必要的库导入你的代码。
我会将此行添加到代码的顶部,以便导入所有Swing组件。
import javax.swing.*;
或者您可以单独导入每个组件。
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JTextField;