2016-12-31 54 views
-1

我想編譯一些在我的MAC上創建一個TCP套接字的java代碼,但是我得到一個錯誤「找不到符號」 - 見下文。我包括腳本來設置Java env(但可能會丟失一些東西)並編譯TCPServer.java文件。Mac編譯Java源代碼找不到JFrame

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

您是否將必要的導入添加到類文件?你也需要向我們展示你的代碼(至少它的一個準系統版本,參見[mcve]) – ochi

回答

1

沒有看到您的代碼,有點難以告訴,但從您的錯誤,我相信你沒有導入必要的庫到您的代碼。

我會將此行添加到代碼的頂部,以便導入所有Swing組件。

import javax.swing.*; 

或者您可以分別導入每個組件。

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