Coder Social home page Coder Social logo

aloento / superspineviewer Goto Github PK

View Code? Open in Web Editor NEW
205.0 205.0 21.0 45.52 MB

A tool to load and export Spine skel & 一个拿来加载与导出Spine骨骼的工具

License: Apache License 2.0

Java 88.84% CSS 11.16%
arknights princess-connect spine

superspineviewer's Introduction

Aloento's GitHub stats

Click to see what I'm using

C C# C++ CSS3 Go HTML5 Java JavaScript Kotlin LaTeX Markdown PHP PowerShell Python Rust Shell Script TypeScript Zig

.Net Blazor Spring Laravel PyTorch React Next JS Vue.js

Anaconda JWT Docker Postman Swagger Apache Maven Nginx Dependabot GitHub Actions YAML CMake Terraform

NodeJS Ant-Design RxDB RxJS TailwindCSS Vite PNPM Yarn

Postgres MongoDB MicrosoftSQLServer SQLite RabbitMQ

Azure Cloudflare DigitalOcean Github Pages Netlify OpenStack OVH Vercel Vultr

CLion GoLand IntelliJ IDEA Jupyter Notebook Rider Visual Studio Code Visual Studio Unity

Alpine Linux Android Cent OS Deepin iOS Kali Manjaro Ubuntu Windows 11

Adobe After Effects Adobe Audition Adobe Photoshop Adobe Premiere Pro Figma Microsoft Access Microsoft Excel Microsoft PowerPoint Microsoft Visio Microsoft Word

Edge OneDrive Microsoft Learn MDN Web Docs Windows Terminal Arduino Confluence Jira

Google Outlook Discord Telegram Apple Music Sound Cloud Spotify YouTube Steam Ubisoft

Anything want to tell me / want me to do?
Don't hesitate to create a New Discussion!

superspineviewer's People

Contributors

aloento avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

superspineviewer's Issues

[Bug] 加载skel时出现错位

如图
20230413180500
我正在尝试使用SuperSpineViewer加载明日方舟中夕的动态立绘皮肤
截图图片左边是我使用 SuperSpineViewer 得到的效果
右上部分pr内的视频是我使用另一个 SpineViewer 导出的视频
右下部分是游戏内的效果
SuperSpineViewer加载出来的效果中夕手上那只龙似乎错位了,与其他的SpineViewer以及游戏中的效果不同
我不是很清楚Spine运作的原理,如果作者需要这个skel我可以提供

[spine 4.0]多个问题

版本:1.3.0
ffmpeg使用的是您提供的自动解压7z包里的
jvm:openjdk 19.0.2
spine:4.0.33

第一个问题:
当atlas文件中含有format:alpha的时候贴图显示错误

示例:
下载地址

yunjing.png
format:Alpha    #这一行参数会导致贴图显示为黑色
size:2048,2048
filter:Linear,Linear
scale:0.3

第二个问题:
同样一个案例…导出时提示ffmpeg错误
部分日志:

Exception in thread "" java.lang.IllegalArgumentException: invalid compression level
        at java.base/java.util.zip.Deflater.setLevel(Deflater.java:397)
        at com.badlogic.gdx.graphics.PixmapIO$PNG.setCompression(PixmapIO.java:215)
        at com.badlogic.gdx.graphics.PixmapIO.writePNG(PixmapIO.java:67)
        at to.aloen.ssv.RecordFX$savePNG.run(RecordFX.java:121)
        at java.base/java.lang.VirtualThread.run(VirtualThread.java:287)
        at java.base/java.lang.VirtualThread$VThreadContinuation.lambda$new$0(VirtualThread.java:174)
        at java.base/jdk.internal.vm.Continuation.enter0(Continuation.java:327)
        at java.base/jdk.internal.vm.Continuation.enter(Continuation.java:320)
FFmpeg处理开始
FFMPEG错误,序列已导出
导出结束

第二个问题我不确定是不是因为ffmpeg配置导致的问题

弃用JFOENIX

由于JFOENIX已不再更新,无法兼容Java17
遂决定弃用,但未找到可用的替代品

导出动画的时候是不完全的

我在导出一些动画查看的时候发现并不是循环的,而是缺失了一部分,是不完整的循环,在预览则是可以正常循环,导出出来的视频则不是循环而是会缺失了一部分

内存泄漏

1

说实话,我也不知道该咋整
JVM显示内存已经释放了
操作系统却告诉我占用了一大堆内存
怎么GC都没用

这我就没办法修了

[Bug] 导出时出现IO错误

概述

在使用2.1.0版release jar包时,可以正常导入、预览spine骨骼,但是无法导出。

具体操作

在导出页面,无论选择什么导出格式或导出质量,在点击导出按钮后会出现java lang io错误。

日志
1月 22, 2024 3:03:18 下午 com.sun.javafx.application.PlatformImpl startup
警告: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @c04a8eb'
SuperSpineViewer已启动
Spine二进制版本:36
请求初始化
请求:开始录制
java.io.IOException: 系统找不到指定的路径。
        at java.base/java.io.WinNTFileSystem.createFileExclusively0(Native Method)
        at java.base/java.io.WinNTFileSystem.createFileExclusively(WinNTFileSystem.java:536)
        at java.base/java.io.File.createNewFile(File.java:1045)
        at to.aloen.ssv.RecordFX.writePNG(RecordFX.java:152)
        at to.aloen.ssv.RecordFX$Task.run(RecordFX.java:181)
        at to.aloen.ssv.RecordFX$1.lambda$new$0(RecordFX.java:25)
        at java.base/java.lang.Thread.run(Thread.java:1583)
java.io.IOException: 系统找不到指定的路径。
        at java.base/java.io.WinNTFileSystem.createFileExclusively0(Native Method)
        at java.base/java.io.WinNTFileSystem.createFileExclusively(WinNTFileSystem.java:536)
        at java.base/java.io.File.createNewFile(File.java:1045)
        at to.aloen.ssv.RecordFX.writePNG(RecordFX.java:152)
        at to.aloen.ssv.RecordFX$Task.run(RecordFX.java:181)
        at to.aloen.ssv.RecordFX$1.lambda$new$0(RecordFX.java:25)
        at java.base/java.lang.Thread.run(Thread.java:1583)
# 以下为重复产生的错误信息

参考错误源

ssv/RecordFX.java, line 81, 87 and 150.

STR."\{Main.outPath}\{fileName}_Sequence\{File.separator}\{fileName}_\{index}.png"

疑似 outPathfileName 间缺少间隔符导致视作为一个文件夹名。

同时无法修改缓存目录,导致即使手动创建文件夹也会出现在 Users/ 目录下导致权限出错,原因未定位。

备注

确保使用 jdk-21,已安装ffmpeg。

PS C:\Users\Admin> java --version
java 21.0.1 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)

PS C:\Users\Admin> ffmpeg -version
ffmpeg version 6.1.1-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --pkg-config=pkgconf --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-dxva2 --enable-d3d11va --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
libavutil      58. 29.100 / 58. 29.100
libavcodec     60. 31.102 / 60. 31.102
libavformat    60. 16.100 / 60. 16.100
libavdevice    60.  3.100 / 60.  3.100
libavfilter     9. 12.100 /  9. 12.100
libswscale      7.  5.100 /  7.  5.100
libswresample   4. 12.100 /  4. 12.100
libpostproc    57.  3.100 / 57.  3.100

用java20运行1.3.0抛异常

Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:901)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
at java.base/java.lang.Thread.run(Thread.java:1623)
Caused by: java.lang.UnsupportedClassVersionError: to/aloen/ssv/RecordFX (class file version 63.65535) was compiled with preview features that are unsupported. This version of the Java Runtime only recognizes preview features for class file version 64.65535

今天刚装的jdk,啥也不懂,头疼。

迁移到DriftFX

目前的渲染方式消耗大量不必要的内存和带宽
等待DriftFX稳定后会迁移

拖放文件读取

一直以来spine的版本兼容性太差了,能有一个工具能兼容读取各个版本的json,skel文件太赞了。很棒的软件。
不知道大佬是否能考虑支持拖放文件读取,这样能极大的提高效率,不至于一个个文件去选择。

暂停后重新播放不从原来停下的地方恢复

可能的解决方案

using System.Collections;
using UnityEngine;
using Spine.Unity;

public class AnimationStateTesting : MonoBehaviour
{
   IEnumerator Start() {
      SkeletonAnimation skeletonAnimation = this.GetComponent<SkeletonAnimation>();
      yield return new WaitForSeconds(1);

      // Pauses playback
      skeletonAnimation.AnimationState.TimeScale = 0;
      float savedTrackTime01 = skeletonAnimation.AnimationState.Tracks.Items[0].TrackTime;
      yield return new WaitForSeconds(1);

      // Resumes playback
      skeletonAnimation.AnimationState.TimeScale = 1;
      yield return new WaitForSeconds(1);

      // Sets playback position of first track to saved pause position.
      // Note that this is a simple version for only a single track, which also does not
      // respect if a different animation is already playing.
      skeletonAnimation.AnimationState.Tracks.Items[0].TrackTime = savedTrackTime01;
   }
}

浪费了两天

浪费了两天,jdk换了n次版本,这个工具也下载了n个版本 都是点一下啥反应也没有 垃圾

如何导出?

点了export,进度条满停止,但是默认的路径下找不到导出文件。修改路径到指定文件夹,依旧无法看到导出文件。mov和sequence都一样,多点几次export内存占用就满了……

关于使用v1.2.6源代码的问题

////////////////////////////////////////////////////////////////
您好,我在https://github.com/Aloento/SuperSpineViewer/releases/tag/v1.2.6
下载了您提供的Source code (zip),即,https://github.com/Aloento/SuperSpineViewer/archive/refs/tags/v1.2.6.zip

将其解压后,加入到我的idea中。File -> Open...
将SDK切换到15。File,Project Structure...,Platform Settings,Add New SDK,Add JDK...,apply,OK。

然后运行com.QYun.SuperSpineViewer.Main时,
出现了名为QYun SoarTeam的窗体。

同时,我的idea出现了以下内容:
SuperSpineViewer已启动
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jfoenix.adapters.ReflectionHelper (file:/C:/Users/********/.m2/repository/com/jfoenix/jfoenix/9.0.10/jfoenix-9.0.10.jar) to method java.lang.reflect.AccessibleObject.setAccessible0(boolean)
WARNING: Please consider reporting this to the maintainers of com.jfoenix.adapters.ReflectionHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

当我在窗体QYun SoarTeam中,点击Open Skeleton并选择一个.skel文件后,
Skel显示了.skel文件的文件名。
Atlas显示了与.skel文件同级目录的同名的.atlas文件的文件名。
但Version与FPS没有任何显示。
也没有任何画面出现在右侧。

同时,我的idea出现了以下内容:
Spine二进制版本:38
请求初始化
Exception in thread "LWJGL Application" java.lang.SecurityException: sealing violation: package org.lwjgl.opengl is sealed
at java.base/jdk.internal.loader.BuiltinClassLoader.getAndVerifyPackage(BuiltinClassLoader.java:869)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineOrCheckPackage(BuiltinClassLoader.java:840)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.defineOrCheckPackage(ClassLoaders.java:191)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:812)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:723)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:646)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:604)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at org.lwjgl.opengl.ContextGL.(ContextGL.java:118)
at org.lwjgl.opengl.Pbuffer.(Pbuffer.java:225)
at com.badlogic.gdx.backends.lwjgl.LwjglToJavaFX.(LwjglToJavaFX.java:34)
at com.badlogic.gdx.backends.lwjgl.LwjglFXGraphics.createDisplayPixelFormat(LwjglFXGraphics.java:176)
at com.badlogic.gdx.backends.lwjgl.LwjglFXGraphics.setupDisplay(LwjglFXGraphics.java:88)
at com.badlogic.gdx.backends.lwjgl.LwjglFXApplication.mainLoop(LwjglFXApplication.java:56)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:127)

我关闭了窗体QYun SoarTeam。
我的idea显示,Process finished with exit code 0

////////////////////////////////////////////////////////////////
我在idea的终端中分别执行了mvn clean与mvn package
在过程中弹出了一些WARNING,但最终的结果是,BUILD SUCCESS

然后我执行了
********\jdk-15_windows-x64_bin\jdk-15\bin\java.exe -jar ********\SuperSpineViewer-1.2.6\SuperSpineViewer-1.2.6\target\SuperSpineViewer-1.2.6.jar
出现了窗体QYun SoarTeam,在点击Open Skeleton并选择一个.skel文件后,
Version、Skel、Atlas、FPS均有显示。
右侧也出现了画面。

但我的终端出现了下面的内容:
SuperSpineViewer已启动
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jfoenix.adapters.ReflectionHelper (file:/********/SuperSpineViewer-1.2.6/SuperSpineViewer-1.2.6/target/SuperSpineViewer-1.2.6.jar) to method java.lang.reflect.AccessibleObject.setAccessible0(boolean)
WARNING: Please consider reporting this to the maintainers of com.jfoenix.adapters.ReflectionHelper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Spine二进制版本:38
请求初始化

我关闭了窗体QYun SoarTeam。

////////////////////////////////////////////////////////////////
请问,我要如何才能解决这个问题?
如果您需要其他信息,您可以说明,我会尽力为您提供。
另外,我向您保证,我真的看不懂您写的代码。呜呜呜。

一些图片表现的不完全

我在spine打开的时候,有一个动画是把眼镜摘了下来,但是在软件上预览的并没有去掉眼镜,而且特效还留了下来
_G5$2M@VSL@BCZNPH( RN
Uploading 0M{Q6I434Q86[ZB]{6THO6B.png…

指定FPS;PNG序列帧数;龙骨文件;FFmpeg问题

感谢大佬的超好用工具!
想要的功能如下:
1 可以指定输出fps
(我一般24~30FPS足够)

2输出png时动作一个循环自动停止(或者可以自行指定输出的总帧数)
现在似乎固定600多帧,需要自行找重复循环的地方然后删掉

BUG:
作死打开了json文件(龙骨用的),预览没有显示,那之后打开skel也不会显示预览,重启后解决

【严重】重载任意骨骼时失败

重载骨骼失败,可能的错误为 (旧版本时)

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: Region not found in atlas: cloak_back1 (weighted mesh attachment: cloak_back1)
at com.esotericsoftware.spine32.attachments.AtlasAttachmentLoader.newWeightedMeshAttachment(AtlasAttachmentLoader.java:36)
at com.esotericsoftware.spine32.SkeletonBinary.readAttachment(SkeletonBinary.java:368)
at com.esotericsoftware.spine32.SkeletonBinary.readSkin(SkeletonBinary.java:233)
at com.esotericsoftware.spine32.SkeletonBinary.readSkeletonData(SkeletonBinary.java:167)
at com.QYun.Spine.Spine32.loadSkel(Spine32.java:38)
at com.QYun.Spine.Spine32.lambda$listeners$8(Spine32.java:150)
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at com.QYun.Spine.SuperSpine.setIsReload(SuperSpine.java:36)
at com.QYun.SuperSpineViewer.RuntimesLoader.init(RuntimesLoader.java:169)
at com.QYun.SuperSpineViewer.GUI.ExporterController.B_Open(ExporterController.java:77)
......

可能的报错(新版本),主要问题

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: No OpenGL context found in the current thread.
at org.lwjgl.opengl.GLContext.getCapabilities(GLContext.java:124)
at org.lwjgl.opengl.GL11.glGenTextures(GL11.java:1403)
at com.badlogic.gdx.backends.lwjgl.LwjglGL20.glGenTexture(LwjglGL20.java:348)
at com.badlogic.gdx.graphics.Texture.(Texture.java:142)
at com.badlogic.gdx.graphics.Texture.(Texture.java:122)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.load(TextureAtlas.java:253)
at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java:245)
at com.QYun.Spine.Standard$1.(Standard.java:42)
at com.QYun.Spine.Standard.loadSkel(Standard.java:42)
at com.QYun.Spine.Standard.lambda$listeners$8(Standard.java:181)
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:181)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
at javafx.beans.property.BooleanPropertyBase.fireValueChangedEvent(BooleanPropertyBase.java:104)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:111)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
at com.QYun.Spine.SuperSpine.setIsReload(SuperSpine.java:36)
at com.QYun.SuperSpineViewer.RuntimesLoader.init(RuntimesLoader.java:147)
at com.QYun.SuperSpineViewer.GUI.ExporterController.B_Open(ExporterController.java:77)
......

无法启动程序

OpenJDK 17.0.8,1.3.0无法启动,1.2.6 exe启动后无窗口但有进程,强制结束后error.log如下
error.log

Camera Width 和 Camera Height 无法手动设置

拿来试了一下明日方舟二周年红蒂的l2d, 图片比较大, 直接超出范围了, 导出的时候就只能看到 Camera 范围内的图片. 可以用 scale 缩小, 但希望能导出原图.

试了一下发现 Camera 是直接由窗口大小决定的, 所以怎么强行导出全图?

想了一下更合适的需求应该是导出和预览尺寸可以不一样?

不知道需要提供啥信息, 有需要的话之后补充.

导出png序列帧问题

请问这个工具的参数调整是否只支持明日方舟这些游戏的?
loadscale xy坐标的调整没有任何改变。
我导入的pine版本是3.5.49的
导出png的时候大量图片是重复的,没有任何动作变化的,请问采集的指标是什么?
一般来说骨骼文件消耗性能大于帧动画,但是采集频率太高了,要么采取固定0.1秒采集图片也行啊。
我还有个问题,既然可以无视版本导入spine动画,那么理论上其实只需要准备一份通用的配置文件就可以了吧?
然后由用户自己决定导出什么格式的配置文件,再配合原本的文件就好了。
我经常遇到二进制的旧版本的spine动画文件的,但是手里只有3.8.75的破解版,还不能切换版本的,否则会报错启动不了
也就没办法用正确的版本打开源文件导出合适的版本配置文件了,要配合cocoscreator用。
我看导出图片的感觉,工具本身就好像是在不断截取区域的图片再导出的吧,否则不应该出现导出图片内容不全的现象。

建议release里打包jre版本

java.lang.reflect.InaccessibleObjectException: Unable to make boolean java.lang.reflect.AccessibleObject.setAccessible0(boolean) accessible: module java.base does not "opens java.lang.reflect" to unnamed module @a6e1e2da
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
	at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
	at com.jfoenix.adapters.ReflectionHelper.<clinit>(ReflectionHelper.java:48)
	at com.jfoenix.skins.JFXTextFieldSkin.<init>(JFXTextFieldSkin.java:59)
	at com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9544)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.preferredSize(Scene.java:1747)
	at javafx.scene.Scene$2.preferredSize(Scene.java:393)
	at com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
	at javafx.stage.Window$12.invalidated(Window.java:1086)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at javafx.stage.Window.setShowing(Window.java:1174)
	at javafx.stage.Window.show(Window.java:1189)
	at javafx.stage.Stage.show(Stage.java:273)
	at com.QYun.SuperSpineViewer.Controller.Launcher.start(Launcher.java:44)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:718)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:889)
java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.get(java.lang.Object)" because "field" is null
	at com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
	at com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
	at com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
	at com.jfoenix.skins.JFXTextFieldSkin.<init>(JFXTextFieldSkin.java:70)
	at com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9544)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.preferredSize(Scene.java:1747)
	at javafx.scene.Scene$2.preferredSize(Scene.java:393)
	at com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
	at javafx.stage.Window$12.invalidated(Window.java:1086)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at javafx.stage.Window.setShowing(Window.java:1174)
	at javafx.stage.Window.show(Window.java:1189)
	at javafx.stage.Stage.show(Stage.java:273)
	at com.QYun.SuperSpineViewer.Controller.Launcher.start(Launcher.java:44)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:718)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:889)
java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.get(java.lang.Object)" because "field" is null
	at com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
	at com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
	at com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
	at com.jfoenix.skins.JFXTextFieldSkin.<init>(JFXTextFieldSkin.java:70)
	at com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9544)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.preferredSize(Scene.java:1747)
	at javafx.scene.Scene$2.preferredSize(Scene.java:393)
	at com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
	at javafx.stage.Window$12.invalidated(Window.java:1086)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at javafx.stage.Window.setShowing(Window.java:1174)
	at javafx.stage.Window.show(Window.java:1189)
	at javafx.stage.Stage.show(Stage.java:273)
	at com.QYun.SuperSpineViewer.Controller.Launcher.start(Launcher.java:44)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:718)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:889)
java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Field.get(java.lang.Object)" because "field" is null
	at com.jfoenix.skins.JFXTextFieldSkin.createPromptNode(JFXTextFieldSkin.java:152)
	at com.jfoenix.skins.JFXTextFieldSkin.lambda$new$1(JFXTextFieldSkin.java:70)
	at com.jfoenix.skins.PromptLinesWrapper.init(PromptLinesWrapper.java:123)
	at com.jfoenix.skins.JFXTextFieldSkin.<init>(JFXTextFieldSkin.java:70)
	at com.jfoenix.controls.JFXTextField.createDefaultSkin(JFXTextField.java:69)
	at javafx.scene.control.Control.doProcessCSS(Control.java:897)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSSImpl(ControlHelper.java:63)
	at com.sun.javafx.scene.control.ControlHelper.superProcessCSS(ControlHelper.java:55)
	at javafx.scene.control.Control.doProcessCSS(Control.java:900)
	at javafx.scene.control.Control$1.doProcessCSS(Control.java:89)
	at com.sun.javafx.scene.control.ControlHelper.processCSSImpl(ControlHelper.java:67)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Parent.doProcessCSS(Parent.java:1400)
	at javafx.scene.Parent$1.doProcessCSS(Parent.java:125)
	at com.sun.javafx.scene.ParentHelper.processCSSImpl(ParentHelper.java:98)
	at com.sun.javafx.scene.NodeHelper.processCSS(NodeHelper.java:145)
	at javafx.scene.Node.processCSS(Node.java:9544)
	at javafx.scene.Scene.doCSSPass(Scene.java:569)
	at javafx.scene.Scene.preferredSize(Scene.java:1747)
	at javafx.scene.Scene$2.preferredSize(Scene.java:393)
	at com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
	at javafx.stage.Window$12.invalidated(Window.java:1086)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at javafx.stage.Window.setShowing(Window.java:1174)
	at javafx.stage.Window.show(Window.java:1189)
	at javafx.stage.Stage.show(Stage.java:273)
	at com.QYun.SuperSpineViewer.Controller.Launcher.start(Launcher.java:44)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:718)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	at java.base/java.lang.Thread.run(Thread.java:889)
Exception in Application start method
java.lang.RuntimeException: Exception in Application start method
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
	at java.base/java.lang.Thread.run(Thread.java:889)
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.Node.getLayoutBounds()" because "this.textNode" is null
	at com.jfoenix.skins.JFXTextFieldSkin.updateTextPos(JFXTextFieldSkin.java:109)
	at com.jfoenix.skins.JFXTextFieldSkin.layoutChildren(JFXTextFieldSkin.java:93)
	at javafx.scene.control.Control.layoutChildren(Control.java:601)
	at javafx.scene.Parent.layout(Parent.java:1207)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Parent.layout(Parent.java:1214)
	at javafx.scene.Scene.doLayoutPass(Scene.java:576)
	at javafx.scene.Scene.preferredSize(Scene.java:1750)
	at javafx.scene.Scene$2.preferredSize(Scene.java:393)
	at com.sun.javafx.scene.SceneHelper.preferredSize(SceneHelper.java:66)
	at javafx.stage.Window$12.invalidated(Window.java:1086)
	at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
	at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:145)
	at javafx.stage.Window.setShowing(Window.java:1174)
	at javafx.stage.Window.show(Window.java:1189)
	at javafx.stage.Stage.show(Stage.java:273)
	at com.QYun.SuperSpineViewer.Controller.Launcher.start(Launcher.java:44)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:718)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	... 1 more
Uncaught error fetching image:
java.lang.NullPointerException: Cannot invoke "java.net.URL.openConnection()" because "this.url" is null
	at java.desktop/sun.awt.image.URLImageSource.getConnection(URLImageSource.java:103)
	at java.desktop/sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:113)
	at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:264)
	at java.desktop/sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:212)
	at java.desktop/sun.awt.image.ImageFetcher.run(ImageFetcher.java:176)

jdk17下无法运行

建议启动时对参数判空 & v1.2.6 exe 启动报错

error.log:

Exception in Application start method
java.lang.RuntimeException: Exception in Application start method
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
	at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.NoClassDefFoundError: java/util/logging/Logger
	at org.kordamp.ikonli.AbstractIkonResolver.<clinit>(AbstractIkonResolver.java:32)
	at org.kordamp.ikonli.javafx.FontIcon.setIconLiteral(FontIcon.java:232)
	at com.QYun.SuperSpineViewer.Controller.Launcher$1$1.<init>(Launcher.java:26)
	at com.QYun.SuperSpineViewer.Controller.Launcher$1.<init>(Launcher.java:24)
	at com.QYun.SuperSpineViewer.Controller.Launcher.start(Launcher.java:23)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
	at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
	at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
	at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
	... 1 more
Caused by: java.lang.ClassNotFoundException: java.util.logging.Logger
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 14 more
Uncaught error fetching image:
java.lang.NullPointerException: Cannot invoke "java.net.URL.openConnection()" because "this.url" is null
	at java.desktop/sun.awt.image.URLImageSource.getConnection(URLImageSource.java:101)
	at java.desktop/sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:111)
	at java.desktop/sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
	at java.desktop/sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:212)
	at java.desktop/sun.awt.image.ImageFetcher.run(ImageFetcher.java:176)

另外,运行jar时发现要指定skel文件,否则虽然页面打开了,但是命令行里还是会报错,用EXE4J打包jar的话,exe启动时应该默认会打开未指定的文件,所以我建议在启动时判空,并能够在启动后选择加载的文件。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.