Java: erinevus redaktsioonide vahel
| (ei näidata 2 kasutaja 19 vahepealset redaktsiooni) | |||
| 1. rida: | 1. rida: | ||
===Sissejuhatus=== | ===Sissejuhatus=== | ||
Siin palas ei tule juttu mitte Tsehhis toodetud mootorrattast vaid ühest keelest. | |||
* JRE: Java Runtime Environment. Tegemist on java virtuaalmasinaga kus java programmid töötavad. Ühtlasi sisaldab see browseri pluginat ja appleti käivitamist. | |||
* JDK: Täielik tarkvara arenduskomplekt javale, sisaldades ühtlasi ka jre-d, kompilaarorit ja töövahendeid (näiteks JavaDoc, Java Debugger) selleks, et luua ja kompileerida programme. | |||
[[Pilt:CBNux.png]] | |||
===Java paigaldamine=== | ===Java paigaldamine=== | ||
Esiteks on olemas Oracle JDK ja Open JDK | |||
* Oracle (varasemalt Sun) JDK, suletud koodiga java, koos kommertsiaalse toega oracle enda asjadele. | |||
* OpenJDK, avatud koodiga java. Oracle poolt vabaks antud osa koodist. | |||
===Java kasutamine=== | ===Java kasutamine=== | ||
| 26. rida: | 35. rida: | ||
$ java HelloWorld | $ java HelloWorld | ||
Hello, World | Hello, World | ||
===Java paketid=== | |||
$ find . -ls | |||
8212 4 drwxr-xr-x 3 root root 4096 Apr 8 11:27 . | |||
8214 4 drwxr-xr-x 2 root root 4096 Apr 8 11:27 ./ee/tartu/loomaaed | |||
8217 4 -rw-r--r-- 1 root root 127 Apr 8 11:24 ./ee/tartu/loomaaed/HelloWorld.java | |||
8219 4 -rw-r--r-- 1 root root 428 Apr 8 11:27 ./ee/tartu/loomaaed/HelloWorld.class | |||
Kompileerimiseks | |||
$ javac ee/tartu/loomaaed/HelloWorld.java | |||
Käivitamiseks | |||
$ java ee.tartu.loomaaed.HelloWorld | |||
Hello World | |||
===Klassid=== | |||
package ee.tartu.loomaaed; | |||
public class HelloWorld { | |||
public static void main(String[] args) { | |||
arvutaja arvuti = new arvutaja(); | |||
int summa = arvuti.liitja(4,3); | |||
int vahe = arvuti.lahutaja(4,3); | |||
System.out.println(summa); | |||
System.out.println(vahe); | |||
} | |||
} | |||
class arvutaja { | |||
public int liitja(int a, int b) { | |||
return a + b; | |||
} | |||
public int lahutaja(int a, int b) { | |||
return a - b; | |||
} | |||
} | |||
kus | |||
* class arvutaja { ... } - klass, milles on kirjeldatud kaks funktsiooni, ehk õigemini meetodit, liitja ja lahutaja | |||
* arvutaja arvuti = new arvutaja(); - moodustatakse arvutaja alusel uus objekt nimega arvuti | |||
* arvuti.liitja(4,3); - kasutatajase objekti arvuti meetodit liitja argumentidega 4 ja 3 | |||
Kompileerimine ja kasutamine toimub nagu eelmisel juhul. | |||
===Ühendus Oracle andmebaasiga=== | ===Ühendus Oracle andmebaasiga=== | ||
Nt Oracle andmebaasiga suhtlemiseks on vajalik draiver ojdbc14.jar (v. 10.2) või ojdbc6.jar (v. 11.2) | |||
$ cat HelloOracle.java | |||
import java.sql.*; | import java.sql.*; | ||
import java.sql.DriverManager; | import java.sql.DriverManager; | ||
| 60. rida: | 122. rida: | ||
* loom - oracle baasi SID | * loom - oracle baasi SID | ||
Kompileerimiseks | |||
$ export CLASSPATH=ojdbc14.jar:. | |||
$ javac HelloOracle.java | |||
ja käivitamiseks | |||
$ java HelloOracle | |||
Kasulikud lisamaterjalid | |||
* http://www.orafaq.com/wiki/JDBC | |||
* http://www.orafaq.com/wiki/EZCONNECT | |||
===Ühendus PostgreSQL andmebaasiga=== | ===Ühendus PostgreSQL andmebaasiga=== | ||
| 99. rida: | 175. rida: | ||
$ java HelloPostgresql | $ java HelloPostgresql | ||
===Ühendus MySQL andmebaasiga=== | |||
Kopeerida draiver aadressilt http://dev.mysql.com/downloads/connector/j/ | |||
$ tar zxf mysql-connector-java-5.1.12.tar.gz | |||
Näiteks selline programm esitab andmebaasi test tabeli inimene tulba nimi väärtused | |||
$ cat HelloMySQL.java | |||
import java.sql.*; | |||
import java.sql.DriverManager; | |||
import java.sql.SQLException; | |||
import java.net.*; | |||
public class HelloMySQL | |||
{ | |||
public static void main(String args[]) throws SQLException { | |||
Connection con = null; | |||
try { | |||
Class.forName("com.mysql.jdbc.Driver").newInstance(); | |||
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/baasinimi?" + \ | |||
"user=kasutajanimi& password=parool"); | |||
Statement st = con.createStatement(); | |||
ResultSet rs = st.executeQuery("SELECT * FROM inimene"); | |||
while(rs.next()) { | |||
System.out.println(rs.getString("nimi")); | |||
} | |||
} catch (Exception e) { | |||
e.printStackTrace(); | |||
} finally { | |||
if(con != null) { | |||
con.close(); | |||
} | |||
} | |||
} | |||
} | |||
Kompileerimiseks | |||
$ export CLASSPATH=mysql-connector-java-5.1.12-bin.jar:. | |||
$ javac HelloMySQL.java | |||
Käivitamiseks | |||
$ java HelloMySQL | |||
===SMTP=== | |||
====Plaintext==== | |||
Selleks, et saata läbi postirelee välja kirja sobib kasutada JavaMail API't http://java.sun.com/products/javamail/, mis tuleb kopeerida ja lahti pakkida sobivasse kataloogi, nt /opt/javamail. Praktiliselt on vajalik kasutada sealt arhiivist ainult mail.jar teeki. | |||
import java.util.*; | |||
import javax.mail.*; | |||
import javax.mail.internet.*; | |||
import javax.activation.*; | |||
// Send a simple, single part, text/plain e-mail | |||
public class Kirjasaatja { | |||
public static void main(String[] args) { | |||
String to = "mart@loomaaed.tartu.ee"; | |||
String from = "priit@loomaaed.tartu.ee"; | |||
// meilirelee aadress | |||
String host = "192.168.1.250"; | |||
Properties props = new Properties(); | |||
props.put("mail.smtp.host", host); | |||
// debugimise sisselülitamine | |||
props.put("mail.debug", "false"); | |||
Session session = Session.getInstance(props); | |||
try { | |||
Message msg = new MimeMessage(session); | |||
msg.setFrom(new InternetAddress(from)); | |||
InternetAddress[] address = {new InternetAddress(to)}; | |||
msg.setRecipients(Message.RecipientType.TO, address); | |||
msg.setSubject("Test kiri"); | |||
msg.setSentDate(new Date()); | |||
msg.setText("See on test kiri. " + | |||
"Ja kirja sisu\n"); | |||
Transport.send(msg); | |||
} | |||
catch (MessagingException mex) { | |||
mex.printStackTrace(); | |||
} | |||
} | |||
} | |||
Kompileerimiseks ja kasutamiseks sobib öelda | |||
$ export CLASSPATH=/opt/javamail/mail.jar:. | |||
$ javac Kirjasaatja.java | |||
$ java Kirjasaatja | |||
===Märkused=== | ===Märkused=== | ||
| 111. rida: | 283. rida: | ||
* http://www.fankhausers.com/postgresql/jdbc/ | * http://www.fankhausers.com/postgresql/jdbc/ | ||
* http://en.wikipedia.org/wiki/Jetty_(web_server) | * http://en.wikipedia.org/wiki/Jetty_(web_server) | ||
* http://xahlee.org/java-a-day/java.html | |||
* [[:Apache Tomcat]] | |||
Viimane redaktsioon: 14. september 2016, kell 09:33
Sissejuhatus
Siin palas ei tule juttu mitte Tsehhis toodetud mootorrattast vaid ühest keelest.
- JRE: Java Runtime Environment. Tegemist on java virtuaalmasinaga kus java programmid töötavad. Ühtlasi sisaldab see browseri pluginat ja appleti käivitamist.
- JDK: Täielik tarkvara arenduskomplekt javale, sisaldades ühtlasi ka jre-d, kompilaarorit ja töövahendeid (näiteks JavaDoc, Java Debugger) selleks, et luua ja kompileerida programme.
Java paigaldamine
Esiteks on olemas Oracle JDK ja Open JDK
- Oracle (varasemalt Sun) JDK, suletud koodiga java, koos kommertsiaalse toega oracle enda asjadele.
- OpenJDK, avatud koodiga java. Oracle poolt vabaks antud osa koodist.
Java kasutamine
Lähtetekst
$ cat HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Kompileerimine, tekib fail HelloWorld.class
$ javac HelloWorld.java
Käivitamine
$ java HelloWorld Hello, World
Java paketid
$ find . -ls 8212 4 drwxr-xr-x 3 root root 4096 Apr 8 11:27 . 8214 4 drwxr-xr-x 2 root root 4096 Apr 8 11:27 ./ee/tartu/loomaaed 8217 4 -rw-r--r-- 1 root root 127 Apr 8 11:24 ./ee/tartu/loomaaed/HelloWorld.java 8219 4 -rw-r--r-- 1 root root 428 Apr 8 11:27 ./ee/tartu/loomaaed/HelloWorld.class
Kompileerimiseks
$ javac ee/tartu/loomaaed/HelloWorld.java
Käivitamiseks
$ java ee.tartu.loomaaed.HelloWorld Hello World
Klassid
package ee.tartu.loomaaed;
public class HelloWorld {
public static void main(String[] args) {
arvutaja arvuti = new arvutaja();
int summa = arvuti.liitja(4,3);
int vahe = arvuti.lahutaja(4,3);
System.out.println(summa);
System.out.println(vahe);
}
}
class arvutaja {
public int liitja(int a, int b) {
return a + b;
}
public int lahutaja(int a, int b) {
return a - b;
}
}
kus
- class arvutaja { ... } - klass, milles on kirjeldatud kaks funktsiooni, ehk õigemini meetodit, liitja ja lahutaja
- arvutaja arvuti = new arvutaja(); - moodustatakse arvutaja alusel uus objekt nimega arvuti
- arvuti.liitja(4,3); - kasutatajase objekti arvuti meetodit liitja argumentidega 4 ja 3
Kompileerimine ja kasutamine toimub nagu eelmisel juhul.
Ühendus Oracle andmebaasiga
Nt Oracle andmebaasiga suhtlemiseks on vajalik draiver ojdbc14.jar (v. 10.2) või ojdbc6.jar (v. 11.2)
$ cat HelloOracle.java
import java.sql.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.net.*;
public class HelloOracle
{
public static void main(String args[]) throws SQLException {
Connection con = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.64:1521:loom", \
"mart", "mardiparool");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select BANNER from SYS.V_$VERSION");
while(rs.next()) {
System.out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(con != null) {
con.close();
}
}
}
}
kus
- loom - oracle baasi SID
Kompileerimiseks
$ export CLASSPATH=ojdbc14.jar:. $ javac HelloOracle.java
ja käivitamiseks
$ java HelloOracle
Kasulikud lisamaterjalid
Ühendus PostgreSQL andmebaasiga
$ cat HelloPostgresql.java
import java.sql.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.net.*;
public class HelloPostgresql
{
public static void main(String args[]) throws SQLException {
Connection con = null;
try {
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection("jdbc:postgresql://127.0.0.1/test", "priit", "parool");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM priit.inimene");
while(rs.next()) {
System.out.println(rs.getString("nimi"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(con != null) {
con.close();
}
}
}
}
Kompileerimiseks
$ export CLASSPATH=postgresql-8.4-701.jdbc3.jar:. $ javac HelloPostgresql.java
Käivitamiseks
$ java HelloPostgresql
Ühendus MySQL andmebaasiga
Kopeerida draiver aadressilt http://dev.mysql.com/downloads/connector/j/
$ tar zxf mysql-connector-java-5.1.12.tar.gz
Näiteks selline programm esitab andmebaasi test tabeli inimene tulba nimi väärtused
$ cat HelloMySQL.java
import java.sql.*;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.net.*;
public class HelloMySQL
{
public static void main(String args[]) throws SQLException {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/baasinimi?" + \
"user=kasutajanimi& password=parool");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM inimene");
while(rs.next()) {
System.out.println(rs.getString("nimi"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(con != null) {
con.close();
}
}
}
}
Kompileerimiseks
$ export CLASSPATH=mysql-connector-java-5.1.12-bin.jar:. $ javac HelloMySQL.java
Käivitamiseks
$ java HelloMySQL
SMTP
Plaintext
Selleks, et saata läbi postirelee välja kirja sobib kasutada JavaMail API't http://java.sun.com/products/javamail/, mis tuleb kopeerida ja lahti pakkida sobivasse kataloogi, nt /opt/javamail. Praktiliselt on vajalik kasutada sealt arhiivist ainult mail.jar teeki.
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
// Send a simple, single part, text/plain e-mail
public class Kirjasaatja {
public static void main(String[] args) {
String to = "mart@loomaaed.tartu.ee";
String from = "priit@loomaaed.tartu.ee";
// meilirelee aadress
String host = "192.168.1.250";
Properties props = new Properties();
props.put("mail.smtp.host", host);
// debugimise sisselülitamine
props.put("mail.debug", "false");
Session session = Session.getInstance(props);
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject("Test kiri");
msg.setSentDate(new Date());
msg.setText("See on test kiri. " +
"Ja kirja sisu\n");
Transport.send(msg);
}
catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
Kompileerimiseks ja kasutamiseks sobib öelda
$ export CLASSPATH=/opt/javamail/mail.jar:. $ javac Kirjasaatja.java $ java Kirjasaatja
Märkused
- Selleks, et java.sun.com võrk töötaks Debian Squeeze 20100402 seisuga, tuleb öelda, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560044
# sysctl -w net.ipv6.bindv6only=0
