Как я могу устранить эту ошибку времени выполнения, которая, по-видимому, связана с диалоговыми окнами? - PullRequest
0 голосов
/ 20 февраля 2010

(Intel Mac OS 10.4.11, среда IDE NetBeans 6.8, SoyLatte 1.0.3)

Хотя в настоящее время я учусь в колледже на Java, и мой код основан на паре вопросов из моего учебника по Java, я хотел бы прояснить, что это НЕ домашняя работа. Это предназначено для учебы, и мой профессор, вероятно, никогда этого не увидит, не говоря уже о том, чтобы оценить его. Несмотря на это, я подозреваю, что это связано с конфигурацией, поскольку у меня не было таких проблем при запуске этой программы на компьютере с ОС Vista в кампусе. Предполагая, что я прав, не должно быть никаких проблем с политиками этого сообщества, так как мне не нужно получать код ответа, чтобы решить эту проблему.

В NetBeans моя программа компилируется и работает нормально, но выдает пару ошибок времени выполнения. Есть идеи, что здесь может происходить?

Вот мой код:

import java.util.Scanner;       // Needed for console input.
import javax.swing.JOptionPane; // Needed for dialog boxes.

/**
   This program performs the actions requested in questions 2.35 and 2.36 in the textbook.
 * @author Dan
 */
public class Pages98To99 {
    public static void main(String[]args){

        // Asks the user for what answer he/she wants to see.
        System.out.println("Do you want to see the answer to 2.35 or 2.36?");
        Scanner keyboard = new Scanner(System.in);  // Creates a scanner object.
        double answer = keyboard.nextDouble();

        if (answer == 2.35){
            //2.35
            JOptionPane.showMessageDialog(null, "Greetings Earthling.");
            JOptionPane.showInputDialog("Enter a number.");}

        else if (answer == 2.36){
            //2.36
            String str = JOptionPane.showInputDialog("Please enter your age.");
                                                 // Gets age.
            int age = Integer.parseInt(str);}    /* Converts age from a string to an
                                                    integer.*/

        else
            JOptionPane.showMessageDialog(null, "Go to another program.");

        System.exit(0); // Ends the program


    }

}

Вот ошибки времени выполнения, вызванные NetBeans:

2010-02-15 21:23:54.659 java[3891] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0xf203, name = 'java.ServiceProvider' See /usr/include/servers/bootstrap_defs.h for the error codes. 2010-02-15 21:23:54.660 java[3891] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (java.ServiceProvider)

Ниже приводится сеанс терминала для устранения неполадок, использующий как более новую версию JDK, предоставленную SoyLatte (http://landonf.bikemonkey.org/static/soylatte/,, которая не может создать диалоговое окно), так и более старую версию, поставляемую Apple как часть моей ОС ( который, как и в NetBeans, отлично работает в противном случае).

Last login: Sat Feb 20 00:12:55 on ttyp1
Welcome to Darwin!
Dans-MacBook:~ Dan$ cd /Volumes/Lexar/NetBeansProjects/MacBook-Made/test/;echo $PATH;java -version;javac -version;javac Pages98To99.java;java Pages98To99;PATH=/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin;java -version;javac -version;javac Pages98To99.java;java Pages98To99
/sw/bin:/sw/sbin:/Applications/soylatte16-i386-1.0.3/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
java version "1.6.0_03-p3"
Java(TM) SE Runtime Environment (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00)
Java HotSpot(TM) Server VM (build 1.6.0_03-p3-landonf_19_aug_2008_14_55-b00, mixed mode)
javac 1.6.0_03-p3
Do you want to see the answer to 2.35 or 2.36?
0
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
        at sun.awt.X11.XToolkit.(XToolkit.java:89)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at java.awt.Toolkit$2.run(Toolkit.java:836)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:828)
        at sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(SwingUtilities2.java:120)
        at javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:1556)
        at javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:130)
        at javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1591)
        at javax.swing.UIManager.setLookAndFeel(UIManager.java:537)
        at javax.swing.UIManager.setLookAndFeel(UIManager.java:577)
        at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1331)
        at javax.swing.UIManager.initialize(UIManager.java:1418)
        at javax.swing.UIManager.maybeInitialize(UIManager.java:1406)
        at javax.swing.UIManager.getDefaults(UIManager.java:656)
        at javax.swing.UIManager.getString(UIManager.java:802)
        at javax.swing.UIManager.getString(UIManager.java:819)
        at javax.swing.JOptionPane.showMessageDialog(JOptionPane.java:592)
        at Pages98To99.main(Pages98To99.java:29)
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02-306)
Java HotSpot(TM) Client VM (build 1.5.0_19-138, mixed mode, sharing)
javac 1.5.0_19
javac: no source files
Usage: javac  
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath           Specify where to find user class files
  -cp                  Specify where to find user class files
  -sourcepath          Specify where to find input source files
  -bootclasspath       Override location of bootstrap class files
  -extdirs             Override location of installed extensions
  -endorseddirs        Override location of endorsed standards path
  -d              Specify where to place generated class files
  -encoding        Specify character encoding used by source files
  -source           Provide source compatibility with specified release
  -target           Generate class files for specific VM version
  -version                   Version information
  -help                      Print a synopsis of standard options
  -X                         Print a synopsis of nonstandard options
  -J                   Pass  directly to the runtime system

Do you want to see the answer to 2.35 or 2.36?
0
2010-02-20 00:16:09.967 java[4618] CFLog (0): CFMessagePort: bootstrap_register(): failed 1103 (0x44f), port = 0xf103, name = 'java.ServiceProvider'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2010-02-20 00:16:09.968 java[4618] CFLog (99): CFMessagePortCreateLocal(): failed to name Mach port (java.ServiceProvider)
Dans-MacBook:/Volumes/Lexar/NetBeansProjects/MacBook-Made/test Dan$ 

Ниже приведена неудачная попытка получить информацию. из среды Windows Vista с компьютера в лаборатории моего класса Java, которая безупречно компилировала и запускала программу. Да, должен был использовать -версию. Я буду обновлять его, если это необходимо для решения этой проблемы.

Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Users\IRC111>java -showversion;javac -showversion
Unrecognized option: -showversion;javac
Could not create the Java virtual machine.

C:\Users\IRC111>java -showversion
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.

    -cp 
    -classpath 
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D=
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:...|:]
    -enableassertions[:...|:]
                  enable assertions
    -da[:...|:]
    -disableassertions[:...|:]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:[=]
                  load native agent library , e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:[=]
                  load native agent library by full pathname
    -javaagent:[=]
                  load Java programming language agent, see java.lang.instrument

    -splash:
                  show splash screen with specified image

C:\Users\IRC111>javac -showversion
javac: invalid flag: -showversion
Usage: javac  
use -help for a list of possible options

C:\Users\IRC111>

Я приложил все усилия, чтобы найти и найти этот сайт в свое ограниченное время, но мне не повезло, что я решил это самостоятельно. Помимо небольшого опыта в Super User и AppleScript, я довольно новичок как в переполнении стека, так и в программировании, поэтому, пожалуйста, будьте осторожны.

1 Ответ

1 голос
/ 20 февраля 2010

Первая ошибка не имеет ничего общего с вашим кодом. Это либо неверная конфигурация NetBeans, либо неверный параметр в вашем проекте. Если вы скомпилируете свой код в командной строке с помощью javac и запустите его с помощью java , все будет в порядке. Но это не отвечает на ваш вопрос. На вашем месте я бы попробовал переустановить netbeans.

Вторая ошибка показывает, что ваша JVM пытается запустить ваш код в системе XWindow. XWindow - это система графического интерфейса для Linux. К счастью, есть версия, доступная для Mac, и она доступна на вашем DVD с снежным барсом.

...