how to make executable for mac and ubuntu in libgdx - libgdx

I've never made a program into an executable for mac or ubuntu , and I've been looking into how to do this for some time now but didn`t got any results. I have been able to build my game for android, ios, windows(.exe) but dont have any idea about mac osx(.app file) or ubuntu (.deb file ).

If you're using eclipse, you could just export as a cross-platform jar (which would then work for mac, linux and windows)
Eclipse makes that really easy: File -> Export ... -> Java -> Runnable Jar File. There may be additional steps required to include assets like your app's images and sounds into this .jar file.
Btw, how did you turn it into a windows exe anyway?

Related

How to make java Module JAR execute by clicking

I am using OpenJDK 11 and OpenJFX 11 on Windows 7. My IDE is Netbeans 9. I have replicated the tutorial (published by NetbeansVideos) below :
JDK 11, OpenJFX, Apache Ant, and Apache NetBeans 10
It is a simple Hello World type code. It works in Netbeans. But when I click the JAR file it doesn't work.
My JAVA_HOME in environment variable is set.
How do I make that Module JAR execute by clicking?
Thanks.
An archive becomes a modular JAR when you include a module descriptor,
module-info.class, in the root of the given directories or in the root
of the .jar archive.
-- https://docs.oracle.com/en/java/javase/17/docs/specs/man/jar.html
If you get your OpenJDK binaries from Adoptium, their installer has an option to associate .jar files. (Not sure about other distros) When you have the file association setup double clicking on a modular, executable, jar file behaves as expected. (Confirmed this is working as of JDK 17 and Windows 10). If not, you can manually setup the Windows file association yourself as described in: Running JAR file on Windows

Cocos2d-js: “Can’t find right android-platform for project”

I changed to new versions of Android SDK and NDK.
When I execute the command "cocos run -p android" in any cocos project directory, also a newly created one, then it compiles all sources correctly, but stops trying to build an apk, with the message:
Can't find right android-platform for project : "/Applications/MAMP/htdocs/42words/frameworks/runtime-src/proj.android". The android-platform should be equal/larger than 10
The Env-Variables are set to:
ANDROID_SDK_ROOT=/Applications/adt-bundle-mac-x86_64-20140702
NDK_ROOT=/Applications/android-ndk-r10
ANT_ROOT=/usr/local/Cellar/ant/1.9.3/bin
And they are correct. At
/Applications/adt-bundle-mac-x86_64-20140702/sdk/platforms
there is a android-20 folder. If I call cocos with
cocos run -p android --ap 20
Then the message is
The directory "android-20" can't be found in android SDK
What am I missing?
I had the same problem when I replaced my old copy of the Android SDK with the one from the Cocos Store.
Can't find right android-platform for project : "/Users/CurrentUser/ProjectName/frameworks/runtime-src/proj.android". The android-platform should be equal/larger than 16
Easy fix! Run android found at /android-sdk/tools/android and make sure that the Android version (in this case API 16) is downloaded.
here is my android_sdk_root, you lose /sdk?
export ANDROID_SDK_ROOT=/Project/adt-bundle-mac-x86_64-20131030/sdk
if not this reason, you can find this log in tools/cocos-console/plugins/project_compile/build_android.py
def check_android_platform(self, sdk_root, android_platform, proj_path, auto_select):
if you use python ,it's easy to find the reason by log
To me, the problem can be solve by installing the older version of android sdk. Open your android ndk folder and check for the newest version of the NDK. If it is android-21 for example, then you open AndroidSDK Manager, and install AndroidSDK Build tools 21. After that, try again to run your project.
In addition, depend on your target device, you may also want to install an equivalent Android SDK platform.

Package Adobe Air to Exe

Using Flash Builder 4.6, I exported an Adobe Air file from my mobile project.
I'm trying to get it packaged into an EXE (that would include the Adobe Air Runtime)
The project was compiled with Air 3.1. I looked online and there are some ADT commands that people recommend using but the problem is that the command throws errors in Air 3.1
If i use air 3.0 ADT:
AIR file at [app path]/app.air could not be converted.
The error was ""
If I use air 3.1 or air 3.2 sdk
SDK is missing file [my path to air]\lib\nai\bin\naip.exe
I'm running
java -jar [path to air]\lib\adt.jar" -package -target native app.dmg app.air
I've also tried
java -jar [path to air]\lib\adt.jar" -package -target native app.exe app.air
I've also looked into projects like this one: http://bishoponvsto.wordpress.com/2010/02/23/adobe-air-2beta-2-to-exe-packaging-air-app-in-windows-executable/ , but it is for Air 2.0.
Any ideas? Apparently there is an integrated Flash Builder 4.6 tool, but for some reason the option under export release doesn't exist for mobile projects - strange...
Why do you want to do this? Air files -- when exported for a specific platform -- are executables.
If you are looking for an "installer" that will create directories, run the Air installation, and move auxiliary files to specific locations (docs, icons, etc.), then try Inno Setup.
EDIT:
The code you provided works for me to create a Windows EXE. But it seems a bit unecessary . . . why not just export the EXE file from Flash Builder ("Export Release Build" button in the top toolbar)? If you can't or won't, then here are some suggestions:
I am using Java version 1.6.0_29. Make sure your Java is not only up to date, but that you are actually calling the correct version (java -version).
Check the JAR directory text carefully .
Check that you are actually calling to the right Air version.
Make sure that the quotation marks are on both sides of the JAR path.
You should be able to do a "Export Release Build" (though I am using FB 4.5). Instead of selecting "Export as: Signed packages for each target platform", select "Export as: Signed AIR packages for installation on the desktop". (You may have to create a certificate, but you can create one through this export feature, too.)
(If you happen to be able to use the Flash IDE, the exported Air file has to support both "Desktop" and "Extended Desktop".)
Hopefully, this will allow you to both produce an Air program that can be converted to EXE, and actually convert it using the command line.
I know this question is a little old, but a co-worker just ran into the same error message using the command line tools and FlashDevelop. It turns out that he was accidentally packaging some source files into the .air package, an extra copy of the app descriptor and one of the swc's was getting packaged in the .air file. I removed those and repackaged the .air file, then used this command:
adt.bat -package -target bundle kiosk kiosk.air
This successfully created a captive runtime exe. Of course there's no need to create a .air file first, you can package right to native or captive runtime, but since my co-worker was creating .air files I did it that way too just to be sure it would work.

AIR file too big, breaks during installation

A client is having me convert an HTML5 video web application that I've already built into an AIR app.
The end users are going to need this to work with no internet access, so I MUST include a LOT of video files with the installer. This works fine on my machine, but my client can't install it because the .air file is too large and they don't have enough RAM. We'll need this installed on a number of laptops that aren't super powerful.
My SDK is up to date and we're using AIR 3.1.
Has anyone else run into a similar situation? Is there any workaround? For instance could I either include both the installer and the .air in a zipped folder, then have the installer move the video files to the appropriate location, or use AS to have the installer download the files (they will have internet access when installing).
I'd recommend you not to include heavy video files into your application. Downloading assets from web is a descent idea, I use same technique for several museum touchscreen apps.
So here's workflow: on startup app tries to connect to "assets server" and request list of files to download. It can be list of all the files, or list of files that have been updated/added since timestamp that you pass with your request. Then you download them to File.applicationStorageDirectory. Not to have mess in that directory I put all of them to "cache" subdirectory.
In case there's no internet connection for some reason when you install that app, you can have all that "cache" folder on your memory-stick/externalHD so you can manually perform that downloading process.
If you use Greensock's LoaderMax: I've written a simple URLStreamLoader that extends LoaderItem, handy for downloading files. Can share that.
The problem is quite obvious: the Adobe AIR provided installer for deploying your application is lacking.
However, Adobe recently released a new feature for deploying Adobe AIR apps: "runtime captive bundle" (Windows or OSX).
Which means 2 important things:
You receive an .exe which no longer requires an user to have Adobe AIR runtime installed (and no more incompatibilities when targeting multiple Adobe AIR runtimes).
You are no longer provided with an installer, and you have to find your own (which solves your problem halfway).
Target bundle when "compiling", and then just use a better installer (Windows or OSX) - think you are just deploying a normal application (worked for me:) ). There are too many installers arround to mention.
Your installer of choice + bundle compiling, together solve your offline installation requirement and the memory exhausting issue.
Packaging a captive runtime bundle for desktop computers

How to ensure that paths for executables are added to path for Adobe AIR application?

I wok on desktop Adobe AIR application. It creates .DMG for mac os builds. It is actually command line application. What I want is the ability to call it from command line - add it .../*.app/Content/MacOS to $PATH. Is there any standard way to do it with AIR ? I need it to work on Windows as well.
Thanks!
No standard way, that's for sure. It's out of scope of AIR. You probably should do that with the shell - something like SET %PATH% = %PATH% + ... Assuming your AIR application has access to shell interpreter, it can do it on first run right after install.