Retirado do arquivo: Código Java 100% correto

Observação: O aplicativo roda no Java 8

[Visualizar o código fonte]

Ícone

icone.png

readme.txt

=============================
Instalação de pacotes - package
=============================
Linux:

Java:
sudo apt install openjdk-8-jdk

Rust
sudo apt install rustc

C# - Windows
sudo apt install mono-runtime
sudo apt install mono-mcs

Swift - MacOS

=============================
Run
=============================
Linux
=============================
chmod +x run.sh
./run.sh

java Window
java -jar WindowJAR.jar
java -cp WindowJAR.jar Window
=============================
Windows
=============================
run

java Window
java -jar WindowJAR.jar
java -cp WindowJAR.jar Window
=============================
Win
=============================
Shell Script - Linux
=============================
chmod +x win.sh
./win.sh
=============================
Arquivo de Lote *.bat - Windows
=============================
win
=============================
C - Linux
=============================
gcc win.c -o win
./win
=============================
C++ - Linux
=============================
g++ win.cpp -o win
./win
=============================
Rust - Linux
=============================
rustc win.rs
./win
=============================
C# - Windows
=============================
mcs win.cs
mono win.exe
=============================
Swift - MacOS
=============================

=============================
Criando um Atalho no linux
=============================
ln -s /home/computador/java/win exemplo

Compilando o código no Linux: run.sh
#!/bin/sh
javac -source 1.8 -target 1.8 -encoding UTF-8 Window.java
jar cvfm WindowJAR.jar manifest.txt @Files.txt
# java Window
# java -jar WindowJAR.jar
# java -cp WindowJAR.jar Window
Ou
#!/bin/sh
javac -source 1.8 -target 1.8 -encoding UTF-8 Window.java
jar cvfm WindowJAR.jar manifest.txt *.class icone.png

Compilando o código no Windows: run.bat

Observação: indique o caminho onde está o arquivo jdk no seu computador!

c:\javac\jdk\bin\javac -source 1.8 -target 1.8 -encoding UTF-8 Window.java
c:\javac\jdk\bin\jar cvfm WindowJAR.jar manifest.txt @Files.txt
Ou:
c:\javac\jdk\bin\javac -source 1.8 -target 1.8 -encoding UTF-8 Window.java
c:\javac\jdk\bin\jar cvfm WindowJAR.jar manifest.txt *.class icone.png

Configurando o PATH do MSDOS no Java

O programa

Files.txt
Window.class
Window$1.class
Window$2.class
icone.png
manifest.txt
Manifest-Version: 1.0
Main-Class: Window
Created-By: 10.0.1 (Iatagan Cursos)
Window.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Window {

    public JFrame janela;
    public JButton botao;

    public void Window() {
        janela = new JFrame();
        janela.setTitle("Hello World Example");
        janela.setSize(200, 200);
        janela.setLocation(500, 260);

        Image Icone = Toolkit.getDefaultToolkit().getImage("icone.png");
        janela.setIconImage(Icone);

        // janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        janela.setLayout(null);

        botao = new JButton();
        botao.setText("Hi!");
        botao.setBounds(25, 10, 150, 25); // objeto.setBounds(esquerda, topo, largura, altura)
        janela.add(botao);

        botao.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(null, "Hello World!");
        }});

        janela.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
        }});

        janela.setVisible(true);
    }

    public static void main(String[] args) {
        Window jx = new Window();
        jx.Window();
    }

}

Criando um Atalho no Linux

Criando Atalho no Linux:
exemplo.desktop
[Desktop Entry]
Name=Exemplo
Exec=/home/computador/java/exemplo.sh
Icon=/home/computador/java/icone.png
Terminal=false
Type=Application
#No Ubuntu insira este arquivo na pasta: /usr/share/applications
icone.png

Criando um Atalho no Windows

Criando Atalho no Windows:
Arquivo: Program.cs
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string nomePrograma = "Meu Programa";
        string caminhoPrograma = @"C:\MeuApp\MeuPrograma.exe";
        string imagemPrograma = @"C:\MeuApp\icone.ico";
        string destino = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

        CriarAtalhoComDynamic(nomePrograma, caminhoPrograma, imagemPrograma, destino);

        Console.WriteLine("Atalho criado com sucesso!");
        Console.ReadKey();
    }

    static void CriarAtalhoComDynamic(string nome, string exe, string icon, string pastaDestino)
    {
        string caminhoAtalho = Path.Combine(pastaDestino, nome + ".lnk");

        // Cria o COM WScript.Shell em runtime (evita dependência de IWshRuntimeLibrary)
        Type wshType = Type.GetTypeFromProgID("WScript.Shell");
        if (wshType == null)
            throw new InvalidOperationException("WScript.Shell não disponível neste sistema.");

        dynamic wsh = Activator.CreateInstance(wshType);
        dynamic shortcut = wsh.CreateShortcut(caminhoAtalho);

        shortcut.TargetPath = exe;
        shortcut.WorkingDirectory = Path.GetDirectoryName(exe);
        shortcut.IconLocation = icon;
        shortcut.Description = nome;

        shortcut.Save();
    }
}
 

Configurando o PATH do MSDOS no C#

  • Crie um arquivo de execução:
  • Arquivo: xpath.bat
    set c_sharp=C:\Windows\Microsoft.NET\Framework\v4.0.30319
    set path=%c_sharp%;%path%
  • No MSDOS execute o comando:
  • xpath

Compilando o Código em C#

  • Digite:
  • csc Program.cs
  • Depois de compilado, vai criar um executável, Program.exe, digite:
  • Program

Compilando o Código em .NET

O Antivirus pode bloquear o programa, então use os seguites comandos abaixos:

  • Digite:

dotnet new console -n AtalhoApp

  • Logo em seguida, emtre na pasta:

cd AtalhoApp

  • Copie o código Program.cs para a pasta AtalhoApp
  • Execute os seguites comandos:

dotnet add package ShellLink
dotnet restore
dotnet run

icone.png

Observação: Converta icone.png para icone.ico

Criando um Atalho no MacOS

Criando Atalho no MacOS:
 
icone.png

Quando o aplicativo está em outra pasta

win.bat
@echo off
C:\java\jdk-23\bin\java -jar WindowJAR.jar
win.bat
@echo off
java -jar /java-exec/WindowJAR.jar

Outros

Terminal

win.sh
#!/bin/sh
java -jar WindowJAR.jar

MSDOS

win.bat
@echo off
java -jar WindowJAR.jar

Linux

win.c - C - Linux
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
// gcc win.c -o win
// ./win
int main(int argc, char **argv){

   int rowsX = 3;
   char **X = calloc(rowsX,sizeof(char*));
   X[0] = "java";
   X[1] = "-jar";
   X[2] = "WindowJAR.jar";
   X[3] = NULL;
   execvp("java",X);
}
win.cpp - C++ - Linux
#include <stdio.h>
#include <unistd.h>
// g++ win.cpp -o win
// ./win
int main(int argc, char **argv){
   char** x;
   x = new char*[4]{"java","-jar", "WindowJAR.jar", NULL};
   execvp("java",x);
}
win.rs - Rust - Linux
use std::process::Command;

// rustc win.rs
// ./win

    fn main() {
        let foo = Command::new("java")
            .args(&["-jar", "WindowJAR.jar"])
            .output().unwrap();
        println!("FOO: {}", String::from_utf8_lossy(&foo.stdout));
    }

Windows

win.cs - C# - Windows
// mcs win.cs
// mono win.exe
class win{
   public static void Main(){
      System.Diagnostics.Process.Start(@"java", @"-jar WindowJAR.jar");
   }
}

MacOS

main.swift - Swift - MacOS
import Foundation

    let p = Process()
    p.executableURL = URL(string: "file:///c:/java/jdk-23/bin/java.exe")
    p.arguments = ["-jar", "/java-exec/WindowJAR.jar"]

do {
  try p.run()
} catch {
  print("Error:", error.localizedDescription)
}

Primeiros Passos no Swift - MacOS

main.swift
// Crie uma pasta teste
// mkdir teste
// Entre na pasta teste
// cd teste
// Gere o código na pasta teste
// swift package init --name teste --type executable

// Vai gerar o seguinte pacote na pasta teste
// /teste
// +
// |--Package.swift
// +--/Sources
//    |--main.swift

// Abra um editor de sua preferência com o seguinte comando
// notepad Sources/main.swift
// Insira o código a seguir na pasta Sources no arquivo main.swift

print("Hello, world!")

// Compile o código na pasta teste com o seguinte comando
// swift run teste

// Executando o programa se for no Windows
// .build\x86_64-unknown-windows-msvc\debug\teste.exe
// Resultado
// Hello, world!