Bạn cần có thể chạy một quy trình mới từ trình duyệt. Có một số cách để làm điều này. Tôi sẽ chỉ cách JNLP để làm điều này.
Tạo một file jnlp như sau:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0+" codebase="http://example/" href="jnlpTest.jnlp">
<information>
<title>Some Title</title>
<vendor>Some Vendor</vendor>
<homepage href="http://example/" />
<description>Some Description</description>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" />
<jar href="jnlpTest.jar" />
</resources>
<application-desc main-class="MainClass" />
</jnlp>
Tạo một jnlpTest.jar sau:
public class MainClass {
public static void main(String args[]) {
Runtime rt = Runtime.getRuntime();
try {
//TODO - different exec for Mac
rt.exec("explorer.exe");
} catch (IOException e) {
//exception
}
}
}
Với Manifest:
Manifest-Version: 1.0
Main-Class: MainClass
Đăng jar JNLP của bạn:
keytool -genkey -keystore testKeys -alias jdc
jarsigner -keystore testKeys jnlpTest.jar jdc
đặt cả tệp jar và jnlp trên máy chủ web. Đảm bảo JNLP loại mime được phân phát dưới dạng application/x-java-jnlp-file
.
tham khảo để thực hiện một JNLP: http://java.dzone.com/articles/java-web-start-jnlp-hello
Bây giờ khi người dùng nhấp liên kết jnlp của bạn họ sẽ tải về jar và được yêu cầu nếu nó là ok để chạy. Chạy nó sẽ làm cho cửa sổ thám hiểm mở ra. Tôi biết đó không phải là giải pháp tốt nhất, nhưng mọi giải pháp sẽ yêu cầu người dùng cho phép thực thi mã trên máy của họ.
Nguồn
2012-02-28 16:13:25
Something mơ hồ này thực sự phải là một bình luận, không phải là một câu trả lời. Tôi cũng sẽ rất ngạc nhiên nếu cổng Mac của Silverlight bao gồm COM. – millimoose
Tôi bắt đầu đưa điều này vào một bình luận, nhưng tôi muốn thêm một ít thông tin hơn là chỉ "thử địa chỉ này". Đây là một điểm khởi đầu nếu điều đó giúp, nếu không bỏ qua câu trả lời của tôi. –
@DMoses Bài viết được liên kết nói ở phần đầu: "Cần lưu ý rằng các tính năng này chỉ có sẵn ở chế độ ưu tiên cao hơn Chế độ ngoài trình duyệt và không có sẵn trong trình duyệt." Bạn có hoàn toàn liên quan đến câu hỏi này không? –