2012-06-09 25 views
10

Jestem pewien, że to pytanie zostało zadane milion razy, ale bez względu na to, ile wyszukiwań w Google zrobię, nie mogę tego zrobić. Zasadniczo próbuję uzyskać projekt z wieloma pakietami do osadzenia na stronie internetowej. Zrobiłem program testowy, który sprawił, że niektóre kule odbijały się po ekranie i udało mi się uruchomić. Umieściłem główną klasę w jednym pakiecie, a klasę balową w innym, aby ją przetestować i wygląda na to, że działa dobrze. Ale program, którego naprawdę potrzebuję na stronie internetowej (zwanej właśnie FinalProject) nie chce tego zrobić.Java Osadzanie w HTML

Najlepszą rzeczą, którą mogę zrobić, to dać mi pusty ekran, nie dając błędu, ale po prostu biały. Jeśli spróbuję kliknąć w miejscu, w którym powinno nic się nie wydarzyć, to myślę, że aplet jest, ale pokazuje tylko biały, więc nie widzę go. Użyłem tagu applet, który z mojego zrozumienia jest teraz amortyzowany, ale muszę włączyć ten projekt na stronie internetowej, aby nauczyciel mógł go zobaczyć. Już testowaliśmy, że projekty innych osób (które używają znacznika applet) działają, więc próbowałem na razie to zrobić i martwić się o to, że będzie działał później w każdej przeglądarce. Choć może to być problem. Może to działałoby na jego przeglądarce, ale nie tutaj. Próbowałem uruchomić mój program w Google Chrome, Mozilla Firefox i Internet Explorer bez powodzenia.

Oto kod HTML:

<html> 
<head> 

</head> 
<body> 
    <applet code = "main.FinalProject.class" width = "700px" height = "500px"></applet> 
</body> 
</html> 

Plik HTML to jest napisane, jest na [Eclipse Workspace]/FinalProject/bin/test.htm. Plik FinalProject.class, do którego odwołuje się HTML, istnieje w [Eclipse Workspace]/FinalProject/bin/ main/FinalProject.class. Plik FinalProject.class działa jako główna klasa, więc jestem prawie pewien, że to ten, który muszę uruchomić. Jest to metoda init(), actionPerformed(), paint() i wszystkie te dobre rzeczy.

Obecnie próbuję uruchomić to w trybie offline na moim komputerze, więc nie powinienem mieć adresu URL, który bym pomyślał. Użyłem Eclipse do napisania kodu Java, nie wiem, czy to robi jakąkolwiek różnicę. Niestety, kod Java jest dość duży, zbyt wiele, aby się tutaj odtworzyć, jeśli jest coś konkretnego, o czym myślisz, że jest problem, mogę poszukać i opublikować tę małą sekcję.

Kilku moich znajomych udało się przekonać ich do pracy, jednak powiedzieli, że musieli usunąć wszystkie pliki .png (denerwujące, ale wykonalne dla mojego projektu). Powiedzieli również, że musieli usunąć cały kod ruchu myszy. Mój program jest w pewnym stopniu zależny od tego, potrzebuję go, aby w ogóle działał. Wiem, że MUSI istnieć sposób na użycie w Internecie wszystkich kodów MouseListener i MouseMoveListener, może jednak jest trochę inaczej. Nie wiem, czy to ma coś wspólnego z tym, ale pomyślałem, że wskażę to, żeby być bezpiecznym.

Każda pomoc tutaj będzie bardzo ceniona.

+0

Zakładam, że zadeklarowałeś, że klasa FinalProject znajduje się w pakiecie głównym wewnątrz kodu java? Możesz spróbować przenieść go do domyślnego pakietu, aby sprawdzić, czy ścieżka jest problemem. – Pyranja

+0

FinalProject znajduje się w głównej klasie. Nie przeniosłem go fizycznie do tego miejsca, utworzyłem nową klasę w Eclipse i umieściłem ją w bin/main /, co do której zakładam, że jest właściwą lokalizacją. Przeniesienie go do domyślnego pakietu i zmiana kodu HTML, który miałem pierwotnie, jak również artlung do nowej lokalizacji, wydaje się nie mieć żadnego wpływu. – Doug

+2

Oh whoops, powiedziałem, że FinalProject jest w głównej KLASIE. To naprawdę nie ma sensu. Miałem na myśli FinalProject IS klasy głównej, a także jest w głównym pakiecie. To miało być 2 zdania, jakoś je połączyłem. – Doug

Odpowiedz

6

zasadzie pytasz coś takiego: How to deploy a java applet for today's browsers (applet, embed, object)?

oparciu o które, myślę, że to, co chcesz:

<object 
    classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA" 
    style="height: 500px; width: 700px;"> 
    <param name="code" value="FinalProject.class"> 
    <comment> 
     <embed code="FinalProject.class" 
     type="application/x-java-applet" 
     height="500" width="700"> 
     <noembed> 
      This browser appears to lack support for Java Applets. 
     </noembed> 
     </embed> 
    </comment> 
    </object> 

Teraz masz nazwę pliku main.FinalProject.class w kodzie. Wygląda na to, że najprawdopodobniej będzie to FinalProject.class. Ale twoje może mieć rację. W każdym razie ten plik html musi znajdować się w tym samym folderze co main.FinalProject.class lub FinalProject.class i niezależnie od tego, jakie klasy mogą być również wymagane.

Teraz może być konieczne sprawdzenie, czy przeglądarki rzeczywiście mogą uruchamiać aplet.Zobacz: How do I enable Java in my web browser?


Aktualizacja

oparciu o informacje zwrotne od Andrew Thompson, preferowanym rozwiązaniem jest użycie JavaScript Oracle, jak poniżej:

<script src="http://www.java.com/js/deployJava.js"></script> 
<script> 
    var attributes = { 
     code:'FinalProject.class', 
    width:700, height:500} ; 
    var parameters = {}; // does the Applet take parameters? 
    var version = '1.6' ; // does the Applet require a minimum version of Java 
    deployJava.runApplet(attributes, parameters, version); 
</script> 

To wymaga zdolności do załadowania dowolny kod JavaScript, ale możesz także uchwycić plik deployJava.js i mieć również lokalny charakter. Może warto rzucić na to okiem.

+1

Dzięki za szybką odpowiedź. Jednak Chrome i IE nie wyświetlają żadnych zmian, wciąż jest to po prostu pusty ekran. Firefox był nieco dziwny, powiedział, że potrzebuję innej wtyczki (chociaż inne testowane projekty sprawdziły się i nadal działają dobrze) i kiedy powiedziałem, żeby to sprawdzić, nic nie znalazłem. Wyszukałem Google na najnowszą wersję przeglądarki Firefox, pobrałem i zainstalowałem ją, ale nadal jest napisane, że potrzebuję kolejnej wtyczki. Nie wiem, co robić. Uwaga: Żadna z przeglądarek nie wyświetlała komunikatu "Ta przeglądarka nie obsługuje Java Aplets". wiadomość. – Doug

+0

Mój Chrome i Safari mają kod odpowiadający na pracę w MacOSX. Firefox początkowo nie powiódł się, ale zaktualizowałem typ w tagu embed i teraz działa. Możesz również spojrzeć na: http://java.com/en/download/help/enable_browser.xml – artlung

+0

Mówi, że jest włączony i nigdy nie miałem żadnych problemów z innymi apletami Javy w Internecie. Trzeba przyznać, że rzadko go używam, ale zawsze działa dobrze. Wszystkie przeglądarki wciąż wyświetlają się w następujący sposób: "Czy na pewno chcesz to uruchomić? Może to spowodować eksplozję komputera!" kiedy próbuję go załadować, więc wiem, że nie jest on wyłączony. – Doug