Модуль javafx.controls не найден, но он существует в нужном местеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Модуль javafx.controls не найден, но он существует в нужном месте

Сообщение Anonymous »

Я использую JDK 25, Apache Netbeans и Windows 11. Моя папка JavaFX SDK находится в C:\, и я проверил, что она действительно находится в папке lib, но компилятор по-прежнему говорит, что не может ее найти. Я почти уверен, что инициализировал правильные параметры виртуальной машины. Мой инструмент сборки — Ant.
Параметры виртуальной машины:
--module-path "C:\javafx-sdk-25.0.1\lib" --add-modules=javafx.controls,javafx.fxml

build.xml:









Builds, tests, and runs the project RoboJava.





Сообщение об ошибке, которое я постоянно получаю:

Произошла ошибка во время инициализации загрузочного уровня

java.lang.module.FindException: модуль javafx.fxml не найден

Также не удается найти javafx.controls
Что я, возможно, делаю неправильно, и почему компилятор не может найти эти два файла?
Я читал кое-что о зависимостях, вызывающих ошибки такого типа. Если это так, то как мне правильно настроить эти зависимости?
Полный код:
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
*/
package robot2;

// Java FX library for playing mp3 audios

import com.phidget22.*;
import javafx.application.Application;
import javafx.scene.Scene;
//import javafx.scene.control.Label;
import javafx.stage.Stage;
import javafx.scene.media.*;
import java.io.FileInputStream;
import static javafx.application.Application.launch;
/**
*
* @author #
*/
public class Robot2 extends Application {

private boolean alarmBlaring = false; // debounce boolean. prevents multiple JavaFX threads while one is already active

/**
* @param args the command line arguments
*/
@Override
public void start (Stage stage)
{
if (!alarmBlaring)
{
alarmBlaring = true;
System.out.println("Alarm playing!");
String fileDir = "\"C:\\Users\\#\\Downloads\\alarm-clock-90867.mp3\""; // path to the mp3 audio file of the alarm
Media audioMedia = new Media(fileDir); // gets the file from the directory string
MediaPlayer alarm = new MediaPlayer(audioMedia); // declares the player of the mp3 file
alarm.setVolume(0.5);
alarm.setCycleCount(MediaPlayer.INDEFINITE); // loops the alarm audio indefinitely
try
{
alarm.play();
Thread.sleep(10000); // stop the alarm audio after 10 seconds
alarm.stop();
alarmBlaring = false;
}
catch (Exception e)
{
alarmBlaring = false;
System.out.println("error occured: " + e); // print out error message
}
}
}

public static void main(String[] args) throws Exception{
// TODO code application logic here

// configs
float dbThreshold = 20f; // the max difference to trigger the output device (speaker/light)

// inits
FileInputStream alarmDir = new FileInputStream(".mp3");

SoundSensor dbChecker = new SoundSensor();
double prevDb = 0;

dbChecker.setHubPort(4);
//dbChecker.setIsHubPortDevice(true);

//greenLED.open(1000);
dbChecker.open(5000);

while (true)
{
try
{
double db = dbChecker.getdB();
if (prevDb == 0)
{
prevDb = db;
} else
{
System.out.println("db: " + db + " | " + "prev: " + prevDb);
double dbDiff = db - prevDb;
if (dbDiff > dbThreshold)
{
launch(args);
}
}
prevDb = db;

//System.out.println("Recorded Decibles: " + db);
// db spike logic
}
catch (PhidgetException err)
{
System.out.println("Decibles exceed sensor capability");
}
Thread.sleep(250);
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... t-location
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»