Mac编译Java源代码无法找到JFrame

时间:2016-12-31 22:01:04

标签: java macos

我正在尝试编译一些在我的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

1 个答案:

答案 0 :(得分:1)

没有看到你的代码,有点难以辨别,但是从你的错误中我相信你没有将必要的库导入你的代码。

我会将此行添加到代码的顶部,以便导入所有Swing组件。

import javax.swing.*;

或者您可以单独导入每个组件。

import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JTextField;