I’ve been looking all over the internet and Can’t find an answer.
I’m using Eclipse and need to import JFrame from javax.swing. But hovering over the the declaration (which in Eclipse should give you an option to import it) the import option does not show up. Instead I manually typed out the import path, but get an error.
Going even further, I used the package explorer to attempt to fine it… couldn’t. I have the latest version of Eclipse, and the Latest JRE and JDK. But still is not working.
Code:
package com.BickDev.Game;
import java.awt.Canvas;
import java.awt.Dimension;
import javax.swing.JFrame;
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;
public static final int WIDTH = 320;
public static final int HEIGHT = WIDTH / 12 * 9;
public static final int SCALE = 2;
public final String TITLE = "Troy's Game Test";
private boolean running = false;
public void run() {
}
public static void main(String args[]) {
Game game = new Game();
Dimension size = new Dimension(WIDTH * SCALE, HEIGHT * SCALE);
game.setPreferredSize(size);
game.setMaximumSize(size);
game.setMinimumSize(size);
JFrame frame = new JFrame(game.TITLE);
}
}
the import javax.swing.JFrame now gives the error
Access restriction: The type JFrame is not accessible due to restriction on required library C:ProgramFilesJavajre8librt.jar
No idea what this means…
Please help….
*UPDATE found the JFrame class.. but cannot access it.
I’m following along with this tutorial, and I got a problem early in the video (at approximately 7:45). I’m trying to create a basic Java program that will launch a window, however, I can’t seem to import JFrame.
I’ve looked for other solutions on Stack Overflow, but I haven’t found one that works for me.
Here is the code I’ve written:
import javax.swing.JFrame;
public class App {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello World");
frame.setVisible(true);
}
}
I’m using Eclipse version 4.12.0 on a Macbook Pro (13-inch, Mid 2012) running macOS Mojave version 10.14.5
Expected result: A window opens when I run the program, and when I close the window, the program ends.
Actual result: No window is created and I get this error message:
Error occurred during initialization of boot layer
java.lang.module.FindException: Error reading module: /Users/username/eclipse-workspace/Swing1/bin
Caused by: java.lang.module.InvalidModuleDescriptorException: App.class found in top-level directory (unnamed package not allowed in module)
Я смотрю по всему Интернету и не могу найти ответ.
Я использую Eclipse и мне нужно импортировать JFrame из javax.swing. Но зависание над объявлением (которое в Eclipse должно предоставить вам возможность импортировать его) параметр импорта не отображается. Вместо этого я вручную напечатал путь импорта, но получаю сообщение об ошибке.
Идя еще дальше, я использовал проводник пакетов, чтобы попытаться это сделать… не смог. У меня есть последняя версия Eclipse, а также последняя JRE и JDK. Но все еще не работает.
код:
package com.BickDev.Game;
import java.awt.Canvas;
import java.awt.Dimension;
import javax.swing.JFrame;
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;
public static final int WIDTH = 320;
public static final int HEIGHT = WIDTH / 12 * 9;
public static final int SCALE = 2;
public final String TITLE = "Troy Game Test";
private boolean running = false;
public void run() {
}
public static void main(String args[]) {
Game game = new Game();
Dimension size = new Dimension(WIDTH * SCALE, HEIGHT * SCALE);
game.setPreferredSize(size);
game.setMaximumSize(size);
game.setMinimumSize(size);
JFrame frame = new JFrame(game.TITLE);
}
}
импорт javax.swing.JFrame теперь дает ошибку
Access restriction: The type JFrame is not accessible due to restriction on required library C:ProgramFilesJavajre8librt.jar
Не знаю, что это значит…
Пожалуйста, помогите….
* UPDATE нашел класс JFrame.. но не может получить к нему доступ.
Я смотрю по всему Интернету и не могу найти ответ.
Я использую Eclipse и мне нужно импортировать JFrame из javax.swing. Но зависание над объявлением (которое в Eclipse должно предоставить вам возможность импортировать его) параметр импорта не отображается. Вместо этого я вручную напечатал путь импорта, но получаю сообщение об ошибке.
Идя еще дальше, я использовал проводник пакетов, чтобы попытаться это сделать… не смог. У меня есть последняя версия Eclipse, а также последняя JRE и JDK. Но все еще не работает.
код:
package com.BickDev.Game;import java.awt.Canvas;
import java.awt.Dimension;import javax.swing.JFrame;
public class Game extends Canvas implements Runnable {
private static final long serialVersionUID = 1L;public static final int WIDTH = 320;
public static final int HEIGHT = WIDTH / 12 * 9;
public static final int SCALE = 2;
public final String TITLE = "Troy Game Test";
private boolean running = false;public void run() {
}
public static void main(String args[]) {
Game game = new Game();
Dimension size = new Dimension(WIDTH * SCALE, HEIGHT * SCALE);
game.setPreferredSize(size);
game.setMaximumSize(size);
game.setMinimumSize(size);
JFrame frame = new JFrame(game.TITLE);
}
}
импорт javax.swing.JFrame теперь дает ошибку
Access restriction: The type JFrame is not accessible due to restriction on required library C:ProgramFilesJavajre8librt.jar
Не знаю, что это значит…
Пожалуйста, помогите….
* UPDATE нашел класс JFrame.. но не может получить к нему доступ.
Я следую этому руководству, и у меня возникла проблема в начале видео. (примерно в 7:45). Я пытаюсь создать базовую программу Java, которая запускает окно, однако я не могу импортировать JFrame.
Я искал другие решения в Stack Overflow, но не нашел подходящего.
Вот код, который я написал:
import javax.swing.JFrame;
public class App {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello World");
frame.setVisible(true);
}
}
Я использую Eclipse версии 4.12.0 на Macbook Pro (13 дюймов, середина 2012 г.) под управлением macOS Mojave версии 10.14.5.
Ожидаемый результат: при запуске программы открывается окно, а когда я закрываю окно, программа завершается.
Фактический результат: окно не создается, и я получаю это сообщение об ошибке:
Error occurred during initialization of boot layer
java.lang.module.FindException: Error reading module: /Users/username/eclipse-workspace/Swing1/bin
Caused by: java.lang.module.InvalidModuleDescriptorException: App.class found in top-level directory (unnamed package not allowed in module)
3 ответа
Если вы создали java-приложение с помощью eclipse, ваша вина заключается в пакете.
С eclipse я создал java-приложение, и это результат

Этот код исправил вашу ошибку
package demo;
import java.awt.Dimension;
import javax.swing.JFrame;
public class App {
public static void main(String[] args) {
JFrame frame = new JFrame("Hello World");
frame.setLocationRelativeTo(null);
frame.setSize(new Dimension(400, 400));
frame.setVisible(true);
}
}
Справочник для понимания пакета
1
vincenzopalazzo
24 Июл 2019 в 23:17
Я была такая же проблема. Я сделал аналогичный код в Eclipse. Я получил ошибку The type javax.swing.JFrame is not accessible на стороне import javax.swing.JFrame; Решение: Удалить строку import javax.swing.JFrame; А затем, внутри вашего тела вашего кода внутри вашего основного, наведите указатель мыши на ключевое слово JFrame, и Eclipse предложит некоторые предложения по автозаполнению. Выберите import 'JFrame' (javax.swing) Это автоматически принесет требуемый импорт. Это своего рода ярлык. Во избежание ошибок такого типа: Никогда не вводите вручную, получите методы импорта И, например, setVisible с помощью автозаполнения. Например, введите frame.setV, и снова Eclipse предложит завершение… выберите оттуда. Не знаю почему, но в моем случае произошло именно так.
0
Mojtaba Mohammadi
21 Июн 2020 в 02:41
Если у вас есть файл module-info.java, поместите его в модуль:
requires java.desktop;
0
Madhav Balakrishnan Nair
5 Фев 2022 в 03:33
|
0 / 0 / 0 Регистрация: 24.06.2014 Сообщений: 25 |
|
|
1 |
|
|
24.06.2014, 08:58. Показов 4222. Ответов 8
Всем здравствуйте. Установил эклипс, установил JRE, все вроде работает, но при работе с более сложными программами пишет что JRE 8, ограничен и не предназначен для работы с такими функциями. Как снять ограничение, или где взять без ограничений (нет Button, Midi, и т.д.) Большое спасибо за ответ
__________________
0 |
|
4087 / 3821 / 745 Регистрация: 18.05.2010 Сообщений: 9,331 Записей в блоге: 11 |
|
|
24.06.2014, 10:09 |
2 |
|
А можете показать что именно пишет?
0 |
|
0 / 0 / 0 Регистрация: 24.06.2014 Сообщений: 25 |
|
|
24.06.2014, 15:49 [ТС] |
3 |
|
Access restriction: The type JFrame is not accessible due to restriction on required library C:Program FilesJavajdk1.8.0_05jrelibrt.jar
0 |
|
4087 / 3821 / 745 Регистрация: 18.05.2010 Сообщений: 9,331 Записей в блоге: 11 |
|
|
24.06.2014, 17:40 |
4 |
|
Александр007, Скорее всего вы пытаетесь использовать не тот JFrame, который вам нужен.
0 |
|
Александр007 0 / 0 / 0 Регистрация: 24.06.2014 Сообщений: 25 |
||||
|
24.06.2014, 18:10 [ТС] |
5 |
|||
|
читаю книгу сьера бейтс, там пример программы
Может еще надо что то установить. И да к стати как сказали javax.swing.JFrame такого там нет, на J там вообще ни чего нет. набираю импорт ставлю точку, выходит список в котором его нет Добавлено через 46 секунд
0 |
|
2390 / 2216 / 564 Регистрация: 28.12.2010 Сообщений: 8,658 |
|
|
24.06.2014, 20:43 |
6 |
|
попробуйте использовать JDK а не JRE
0 |
|
0 / 0 / 0 Регистрация: 24.06.2014 Сообщений: 25 |
|
|
24.06.2014, 23:33 [ТС] |
7 |
|
JDK содержит тот же JRE. Добавлено через 32 минуты Добавлено через 1 час 30 минут
0 |
|
4087 / 3821 / 745 Регистрация: 18.05.2010 Сообщений: 9,331 Записей в блоге: 11 |
|
|
25.06.2014, 01:29 |
8 |
|
Александр007, А какой до этого стоял?
0 |
|
0 / 0 / 0 Регистрация: 24.06.2014 Сообщений: 25 |
|
|
25.06.2014, 08:55 [ТС] |
9 |
|
до этого стоял стандарт, который предлагает оракул(oracle.com›ru)
0 |
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
25.06.2014, 08:55 |
|
9 |
I used to have the same problem; here’s how to solve it.
You see, we were trying to use swing lib in a totally wrong context, that is, within an Android app. As Scott Barta pointed out, Android has its own mechanisms for doing what we wanted to achieve and that’s why IntelliJ didn’t let us import anything that would interfere with Android API.
Hence, do NOT use Android app when, say, simply learning how to code in Java or, on a more advanced level, when testing/debugging your algorithms. Instead, build a standalone Java program (yes, in Android Studio). This very topic is covered here: Can Android Studio be used to run standard Java projects? , «Tested on Android Studio 0.8.6 — 1.0.2» by idunnololz). A few clarifying remarks to this solution:
1) wnen preparing your configuration (Run | Edit Configurations…), use your new Java module name and its main class in the appropriate fields.
2) before clicking Run make sure you selected same configuration.
Incidentally, there indeed IS a way to import swing library into any Android app: based on http://www.youtube.com/watch?v=fHEvI_G6UtI. Specifically, add a new line to build.gradle file for your Module:app:
compile files ('<path_to_your_jdk's_rt.jar>')
Like this:
compile files ('C:/Program Files/Java/jdk1.8.0_31/jre/lib/rt.jar')
Note single quotes and forward slashes. Then click Sync Gradle icon and enjoy the view.
In our particular case, however, the program won’t run. The code itself will be clean, there’ll be no errors; with swing lib well in place and connected, IntelliJ won’t suspect a thing; the project WILL compile… but then we’ll get a runtime error. Now your know why. On the other hand, this method works like magic when we do not interfere with Android API — which we shouldn’t in the first place.
That’s all there is to it.