Problem when compiling JavaFX with Sublime Text 3 - javafx

I've recently started a project working with JavaFX and am using Sublime Text as IDE.
When compiling with the built-in system in S.T I get errors while importing JavaFX packages.
Compiling and running in terminal works fine,
javac --module-path %PATH_TO_FX% --add-modules javafx.controls GUIExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls GUIExample
I've been looking around and I can't manage to find out how to be able to build JavaFX in S.T.
Any help is very appreciated.
/Best Splinter
(I am running: jdk-13.0.1, Windows 10)

You need to configure the java build path for your sublime text editor.
Click on Preferences->Browse Packages
Navigate to Java Folder->JavaC.sublime-build
Modify the contents of this file as:
{
"file_regex": "(.+):(\\d+): error: ",
"shell_cmd": "javac $file && java $file_base_name",
"shell": true,
"selector": "source.java",
}
Also Sublim Text is a Text Editor and not an IDE. I will not recommend to use Sublime Text for Java Development. You can go for Eclipse or IntelliJ Idea as your Java IDE.

Related

how to create a distributable .jar with intelliJ JavaFX

It's been a few days since I've been trying to export a very simple project made in JavaFX but I have a very frustrating problem: To run the jar I need to open cmd navigate to the jdk folder and execute the following code java --module-path %path_to_JavaFX_on_my_pc% --add modules=javafx.controls,javafx.fxml,javafx.graphics -jar %path_to_jar% where I point to the jfx folder on the pc and add the necessary modules to run the jar.
run the jar using java java -jar %path_to_jar% results in the following error: Error: JavaFX runtime components are missing, and are required to run this application
The project is modular, having declared module-info.java with the following code:
module Timer {
requires java.prefs;
requires com.jfoenix;
requires javafx.base;
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
requires javafx.media;
requires javafx.web;
requires javafx.swing;
opens main;
exports main;
}
when exporting the artifact I include all the .jar contained in the javafx, so why should I point to it externally?
The app runs well when I run it through the IDE, I didn't even have to add VM options.
My goal is to create an application that can actually be distributed, without the user needing to have any knowledge beyond the basics to run it, no jre, jdk, jfx, cmd code, etc... just click twice and done.
The question is: How do I generate an executable file that can be opened with 2 clicks like any other application on the pc on *any pc?
finally I got a solution to my problem.
1 ° - It was necessary to solve the problem when generating a java artifact using javaFx in intelliJ: In JDK 13 the IDE threw the following error
Can't build artifact - fx: deploy is not available in this JDK
the easiest solution for that was to return on JDK 9 ond the javaFx was still built in and everything worked fine. Having done that, I was able to generate .jar artifacts that worked without the need to use command line tools.
2 ° -So I needed to generate a native executable for my application: In this topic there is an excellent list of tools that create launchers for java artifacts (Ideal was to convert but there gets a little complicated). What worked best for me was Jsmooth where I was able to set up a launcher that built in my .jar and where I could also attach a copy of the JRE for distribution on computers without Java
It is worth noting that I develop desktop applications just for my use and that of some friends, they do not work with sensitive data and do not require a high level of security and therefore there is no problem using an old version of jdk, in any other case, no recommend this approach.
Thank you all for your help.
I ran into the same problem with JavaFX 11. The way I did it, to be able to generate the jar artifact, I set the Project Settings - Artifacts - Type to JAR rather than JavaFX Application. That enabled me to create a jar in the out directory of my project. Afterwards, I wrote a batch file that created a custom jre for my app (as small as ~40 MB for a small app), including JavaFX. I called that bat file create.bat and placed that bat file in the same folder as my jar artifact.
Now, provided
my jar artifact is called app.jar,
path to JDK is D:\jdks\jdk11,
path to JFX mods is D:\jdks\jfx11\jmods,
module name is com.epsilon, and
path to Main class is com.epsilon.Main,
below is the contents of the bat file to create a custom JRE, including JavaFX. It created a custom JRE in the folder dist, the launch file is in the dist\bin directory called run.bat.
rem This sets the variable DIR to the current directory with the jar artifact
set DIR=%~dp0
rem This creates a temporary mod file
D:\jdks\jdk11\bin\jmod create --class-path %DIR%app.jar %DIR%temp.mod
rem This creates distributable JRE
D:\jdks\jdk11\bin\jlink ^
--compress=2 ^
--strip-debug ^
--no-man-pages ^
--launcher run=com.epsilon/com.epsilon.Main ^
--module-path D:\jdks\jdk11\jmods;D:\jdks\jfx11\jmods;%DIR% ^
--add-modules com.epsilon ^
--output %DIR%dist
rem This command deletes the temporary mod file
del %DIR%temp.mod
rem You can create a shortcut to your app above the "dist" folder and enter the below line to the shortcut's target property
rem %windir%\system32\cmd.exe /c start "" "%CD%\dist\bin\javaw.exe" -m com.epsilon/com.epsilon.Main
So, this has enabled me to create a working distributable without downgrading Java.

How to create phpunit.xml file for the sublime text 3 with package phpunit

I have installed sublime Text 3 with the package phpunit everything installed easily.
then i downloaded and installed phpunit for windows platform using the following instructions. https://phpunit.de/manual/6.5/en/installation.html
Now again phpunit successfully installed and i have done test they are working fine.
So now when i try to run those tests from sublime Text editor then he is asking for phpunit.xml file can anyone tell me where can i find that file or how can i write that file. so that i can run those test from sublime.
Other problem i am facing when i try to create phpunit.xml file then it asks for various setting and paths like bootstrap.php which i can't find in one phpunit.phar file so fully confused.
After Some try on the phpunit.xml file getting error in below image

How To Compile QFtp Example in Qt 5?

I have application which uses QFtp class.I have made in Qt 4 version.
But now i want to complie QFtp classe in Qt5 but it's showing some error like:
'QFtp' doesn't name and type.
how to resolve this issue. I don't want to use QNetworkAccessManager. is there any way to this?
Thank you
For the sake of completeness, the steps to use the add-ons are:
Download the sources for the add-on from https://github.com/qt/qtftp
Extract the sources somewhere (e.g. Qt5.x.y/Src/qtmyaddon)
Open a console in that folder
Read readme.txt and run the appropriate commands with the latest QT version
Run qmake
Run make (or nmake or mingw32-make or whatever)
Run sudo make install (nmake install, mingw32-make install, ...)
In the .pro file of your project, add "QT += myaddon" (e.g. "QT += ftp")
Run qmake on your project
Compile your project

Getting an empty window while Deploying a QML Desktop application on Windows

I just finished writing a QML desktop application(with QtCreator and c++) on Windows.
I've installed QT Quick Desktop Components, according to these instrctions, with MinGw compiler, in C:\QtSDK\Desktop\Qt\4.7.4\mingw\imports\Qt\labs\components folder.
I installed it twice - once for debug - with the command: qmake && jom debug && jom install, and once for release - with the command: qmake && jom release && jom install, so I have now two dll files: 1.styleplugin.dll, 2.styleplugind.dll. and I'm using each of them when I need it. I've imported it to my application with:
import Qt.labs.components 0.1
Now I have to deploy my application, and make it work on all the machines: with Qt installed on it, or with no.I tried to do it with these steps:
coppied these files: application.exe, QtCore4.dll, QtGui4.dll, QtNetwork4.dll, styleplugin.dll and styleplugind.dll.
but when I'm running the .exe file - I'm getting a white, empty screen.
(BTW, when I'm running the .exe file from it's release folder - I can see again only a white window, and when I did the same to a simple Widget GUI application - it runs well from there).
Do you know about any reason to this situation?
Any answer would be appreciated!
May be you forgot deploy QML files to exe? (qrc)
Simple way to test it is copy folde with qml-files to destination near exe file
UPD:
Please read Qt Resource System article
I.e.:
First need add new "Resource File" in project menu,
Then place all of your qml files into this resource file
Change "Source" in your QDeclarativeView like a:
viewer->setSource(QUrl("qrc:/main.qml"));
One possible solution is to enable warnings by running the command
qmlviewer.exe -warnings show qmlfilename.qml
If qmlviewer cannot find any dependent import libraries, it will show up here.
To make sure qmlviewer can access the import libraries either use the -I <directory> on the command line
OR set the QML_IMPORT_PATH environment variable to the folder containing the import libs.
eg:
qmlviewer.exe -warnings show -I <directory> qmlfilename.qml
OR
set QML_IMPORT_PATH=<directory>
where <directory> is the module import search path (without the <>)

Running external tools in Eclipse on Mac OS X

I'm using Flash Builder 4 on a mac. I've created a JSFL file for building a few fla's and then testing my main SWF file. I'm trying to run this JSFL file as an external tool from Flash Builder 4 but when I select Adobe Flash CS4.app as the file to run the JSFL Eclipse warns "External tool location specified is not a file."
I have Parallels installed and if I point at a .exe file this warning goes away. Is this a bug? Why can't I use a .app as an external tool in Eclipse?
Try this:
Location: /usr/bin/open
Working Directory: empty
Arguments: -a /Applications/YourApp.app --args "arguments"

Resources