Pracując nad projektem zaliczeniowym z Programowania w Javie natknąłem się na świetny artykuł Convert Java to EXE – Why, When, When Not and How. Jako że, moja praca dyplomowa poświęcona jest metodom konwertującym skrypty Pythona do postaci wykonywalnej (natywnej) *.exe, z przyjemnością przyjrzałem się równoważnym rozwiązaniom dla języka Java. Zainspirowany tematem, postanowiłem opisać go na konkretnym przykładzie.
Notka została przygotowana w oparciu o darmowe oprogramowanie. Prezentuje receptury zawierające przykładowe rozwiązania najczęściej występujących problemów, związanych z dystrybucją programów napisanych w Javie w postaci pojedynczego pliku wykonalnego *.exe. Należą do nich m.in.:
- Dostęp do zasobów (multimediów) z poziomu pliku jar,
- Łączenie wielu plików jar w single executable jar,
- Konwersja single executable jar do postaci single executable file (*.exe),
- Prywatne JRE.
Czytaj więcej…
iText to biblioteka napisana w języku Java (dostępna również dla języka C#), która pozwala na tworzenie, modyfikowanie i czytanie dokumentów PDF. Swoje główne zastosowanie znajduje w aplikacjach internetowych oraz okienkowych usprawniając dynamiczny proces zarządzania dokumentami. Dodatkowo, umożliwia generowanie dokumentów PDF z dowolnego pliku typu RTF, HTML, XML czy TXT, dodawanie zakładek, numerów stron, znaków wodnych czy cyfrowego podpisu. iText dostępna jest na licencji AGPL.
Czytaj więcej…
Laboratorium 6
Zadanie 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| abstract class Budynek {
protected int pietra;
protected String lokalizacja;
public abstract void iloscPieter();
public void podajLokalizacje() {
System.out.println(lokalizacja);
}
}
class Wiezowiec extends Budynek {
public Wiezowiec(int pietra, String lokalizacja) {
this.pietra = pietra;
this.lokalizacja = lokalizacja;
}
public void iloscPieter() {
System.out.println(pietra);
}
}
public class Zad1 {
public static void main(String args[]) {
Wiezowiec w = new Wiezowiec(5, "Woj. Podlaskie");
w.iloscPieter();
w.podajLokalizacje();
}
} |
Która metoda musi być zaimplementowana?
Odp: iloscPieter().
Czytaj więcej…
Laboratorium 5
Zadanie 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| class B {
private String b;
public B() {
System.out.println("Konstruktor klasy B");
}
public B(String s) {
System.out.println("Konstruktor klasy B\n" + s);
}
public void metoda1() {
System.out.println("metoda1 klasy B");
}
public void metoda2() {
System.out.println("metoda2 klasy B");
}
}
class A extends B {
private String a;
public A() {
System.out.println("Konstruktor klasy A");
}
public A(String s) {
System.out.println("Konstruktor klasy A\n" + s);
}
public void metoda1() {
System.out.println("metoda1 klasy A");
}
}
public class Zad1 {
public static void main(String args[]) {
A obj1 = new A();
A obj2 = new A("Hello world!");
obj1.metoda1();
obj2.metoda2();
}
} |
Jaka jest kolejność użycia konstruktorów?
Odp: B, A, B, A.
Czytaj więcej…
Rozwiązania zadań z zestawu 4 już dostępne!
Laboratorium 4
Zadanie 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| class Punkt {
private int x;
private int y;
public Punkt() {}
public Punkt(int x, int y) {
this.x = x;
this.y = y;
}
public Punkt(double x) {
this.x = (int)x;
this.y = (int)x;
}
public void wypisz() {
System.out.println("x = " + x + ", y = " + y);
}
}
public class Zad1 {
public static void main(String args[]) {
Punkt p1 = new Punkt();
Punkt p2 = new Punkt(1, 2);
Punkt p3 = new Punkt(3.0);
p1.wypisz();
p2.wypisz();
p3.wypisz();
}
} |
Czytaj więcej…