В общем, в потоке JavaFX у меня запускаются два других потока Server и Client. Соответственно нужно как-то в клиент из потока JavaFX передать параметр writeObject, но когда я пытаюсь это сделать вылетает NullPointerException.. При использовании Service и Task вообще ничего не происходило... Как передать информацию из этого *** JavaFX в другой поток или в чём тут ещё может быть проблема?
public class Main extends Application {
Client c = new Client();
public void start(Stage stage) throws Exception{
try {
menu = FXMLLoader.load(Main.class.getResource("smth.fxml"));
loading = FXMLLoader.load(Main.class.getResource("paw.fxml"));
game = FXMLLoader.load(Main.class.getResource("game.fxml"));
} catch (IOException e) {
e.printStackTrace();
}
scene1 = new Scene(menu);
scene = new Scene(loading);
scene2 = new Scene(game);
Main.stage = stage;
stage.initStyle(StageStyle.UNDECORATED);
stage.setScene(scene);
stage.show();
new Timeline(new KeyFrame(Duration.millis(1500), actionEvent -> {
stage.setScene(scene1);
})).play();
}
@FXML
private Button b1;
@FXML
public void initialize() {
b1.setOnAction(ae -> {
new Thread(c).start();
c.sendData("Hello");
});
}
}
public class Client implements Runnable {
private static Socket connection;
private static ObjectInpurStream input;
private static ObjectOutputStream output;
public void run() {
try {
connection = new Socket(InetAddress.getByName(IP), 3112);
output = new ObjectOutputStream(connection.getOutputStream());
input = new ObjectInputStream(connection.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
public void sendData(Object object){
try {
output.writeObject(object);
output.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
В общем есть ещё сервер, но не думаю, что его надо описывать.. Клиент к нему подключается, там всё нормально работает. Но, когда я пытаюсь отправить эту несчастную строчку, вылетает NullPointerException... В общем-то я новичок в Java, поэтому тяжело сообразить куда копать надо
У вас инициализация поле output
происходит в новом потоке, а send в основном потоке, так во время output.writeObject(),
output ещё не успел инициализироваться .
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Собственно, ошибка, как у всех, делаю как в ответах здесь, но работает неправильно
Я разобрался как загружать файл в bucket aws s3, научился его скачивать в директорию на компьютереНо не могу понять каким способом загружать файлы...