Electron Adventures: 에피소드 83: JRubyFX
불행한 시작
JRuby로 첫 번째 설정
.ruby_version
:jruby-9.3.1.0
그리고
Gemfile
를 사용하여 jrubyfx
:source "https://rubygems.org"
gem "jrubyfx", "~> 1.2"
이제 문서에서 Hello World를 시도하면 다음과 같은 결과를 얻습니다.
JavaFX runtime not found. Please install Java 7u6 or newer or set environment variable JFX_DIR to the folder that contains jfxrt.jar
If you have Java 7u6 or later, this is a bug. Please report to the issue tracker on github. Include your OS version, 32/64bit, and architecture (x86, ARM, PPC, etc)
글쎄요, judging by Github Issues 2019년 2월부터 버그가 생겨서 그다지 유망한 출발은 아닙니다.
일부 조사 후 JavaFX는 원래 Oracle JDK의 일부로 포함되었습니다but then Oracle JDK moved it out. 그리고 OSX에서 사용하는 것을 포함하여 다른 Java 구현에는 포함되지 않았습니다.
그래서 우리는
jpm install javafx
그리고... 농담으로 Java에는 npm
또는 gem
같은 것이 없습니다.설상가상으로 Java 개발자 커뮤니티는 끔찍하며 "이 URL을 컬링하고 이 명령을 실행하십시오"또는 "패키지를 다운로드하려면 이 링크를 클릭하십시오"라고 말하는 대신 "설치하십시오"라고만 말하고 어떤 것을 알아낼 것을 기대합니다. 100개 버전 중 작동해야 합니다. 그리고 개발자뿐만 아니라 사용자도 같은 방식으로 대합니다. 거의 모든 다른 언어 커뮤니티가 이것을 더 잘 처리합니다.
이전 자바 사용
그래서 오래된 Mac을 확인했는데 오래된 Oracle Java가 설치되어 있었습니다.
글쎄,
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/
그리고 계속합시다.안녕, 세계!
다음은 Hello World 프로그램입니다.
#!/usr/bin/env ruby
require "jrubyfx"
class HelloWorld < JRubyFX::Application
def start(stage)
with(stage, width: 300, height: 300, title: "Hello, World!") do
layout_scene do
label("Hello, World!")
end
show
end
end
end
HelloWorld.launch
카운터
그리고 여기 카운터 앱이 있습니다. 내장된 반응성이 없으므로 상태를 업데이트할 때마다 UI를 수동으로 업데이트해야 합니다.
#!/usr/bin/env ruby
require "jrubyfx"
class Counter < JRubyFX::Application
def start(stage)
count = 0
with(stage, width: 300, height: 300, title: "Counter App") do
layout_scene do
vbox do
count_label = label("Count: #{count}")
hbox do
button("+1").set_on_action {
count += 1
count_label.text = "Count: #{count}"
}
button("-1").set_on_action {
count -= 1
count_label.text = "Count: #{count}"
}
end
end
end
show
end
end
end
Counter.launch
결과
아직 명확하지 않은 경우에는 이 중 어떤 것도 사용하지 마십시오. UI가 SWT보다 약간 낫고 레이블 텍스트의 크기가 올바르게 조정되었지만 실제로는 현대 UI 프레임워크에서 기대하는 것과는 거리가 멀고 진입해야 하는 Java 생태계는 엉망진창입니다.
많은 Electron 대안을 시도해 본 결과 NodeGui가 완전히 쓰레기가 아니었고 거기에서도 친숙한 HTML+CSS 세계를 포기하는 데 큰 비용을 지불해야 한다고 말하고 싶습니다.
그래서 다음 에피소드에서 다시 Electron에 무언가를 작성해 봅시다!
평소와 같이 all the code for the episode is here .
Reference
이 문제에 관하여(Electron Adventures: 에피소드 83: JRubyFX), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/taw/electron-adventures-episode-83-jrubyfx-pmc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)