2010-06-18 33 views
6

Bạn sử dụng API mới tuyệt vời này liên quan đến Java như thế nào? Bạn chỉ sử dụng API quá trình thuần túy thuần túy như nativeProcess.standardInput.write() và nativeProcess.standardOutput.read() mà bạn không thể gỡ lỗi phía Java không gọi phương thức java từ xa. Hoặc bạn đang sử dụng một số thư viện mà thúc đẩy lời gọi phương thức từ xa như flerry lib nhưng điều đó cũng không thể gỡ lỗi bên Java? Hoặc có thể bạn đang sử dụng Merapi mà bạn có thể gỡ lỗi nhưng không thể gọi phương thức Java từ xa? Tôi hỏi điều này vì đây có lẽ là câu hỏi quan trọng nhất liên quan đến API này và tính dễ sử dụng của nó.Làm thế nào để sử dụng API 2.0 NativeProcess API với Java?

+0

Hiện tại, khi giao tiếp với quy trình gốc, quá trình gốc phải được triển khai theo cách chờ đợi đầu vào tiêu chuẩn và ghi vào đầu ra/lỗi chuẩn. Vì vậy, để làm cho nó rõ ràng, bạn đang yêu cầu một xác nhận của lý thuyết đó, hoặc một phủ định, cuối cùng với một ví dụ, phải không? –

+0

Câu hỏi này rất không rõ ràng. Bạn gặp sự cố khi gọi ứng dụng? hoặc vấn đề gì đó sau này mà bạn muốn gỡ lỗi? –

Trả lời

0

Có vẻ như các đặt chỗ của bạn phải làm với việc có thể gỡ lỗi quy trình Java. Đây không thực sự là một vấn đề. Bạn có thể sử dụng NativeProcess API để khởi động một tiến trình Java với các đối số sẽ khiến cho nó có thể bị gỡ rối bên ngoài. Ví dụ:

var processArgs:Vector.<String> = new Vector.<String>(); 
processArgs.push("-Xdebug"); 
processArgs.push("-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"); 

Điều này sẽ cho phép quá trình Java của bạn có thể gỡ lỗi từ xa. Sau đó bạn có thể kết nối với nó từ Eclipse hoặc Netbeans khi quá trình đã bắt đầu. Nếu mã trong quá trình Java được liên kết với một dự án Eclipse/Netbeans đang hoạt động, bạn có thể thực hiện gỡ rối theo dòng giống như bạn làm với bất kỳ ứng dụng Java nào khác.

-Raj

0

Bạn có thể sử dụng để thực hiện NativeProcessjava.exe và vượt qua nó các thông số thích hợp để thực hiện một ứng dụng java.

Bạn không thể sử dụng NativeProcess để chạy mã java ngẫu nhiên từ tệp jar.

0

Sau khi sử dụng cả hai, bạn có thể gỡ lỗi JVM bằng API MerAPI hoặc NativeProcess. Trước khi AIR2.0, tôi sử dụng merapi để giao tiếp qua mạng với một quá trình java.

Tôi rất muốn sử dụng trình khởi chạy NativeProcess ngay bây giờ, với MerAPI chúng tôi đã hack mã marshalling xấu xí. Gỡ lỗi tải trọng mạng là một pin thông qua merapi.

Sử dụng API NativeProcess rất dễ dàng -

var myForkedExe: NativeProcessStartupInfo = new NativeProcessStartupInfo(); myForkedExe.executable =; ...

Tôi không chắc mình hiểu ý của bạn bằng cách không thể gọi các phương thức Java từ xa bằng merapi. Đó chính xác là những gì tôi đã làm. Gỡ lỗi rất dễ dàng, chỉ cần thiết lập JPDA args và đính kèm bất kỳ trình gỡ lỗi JAVA nào.

0

Bạn có thể sử dụng Flerry để khởi chạy và giao tiếp với các quy trình java.

0

Bạn có thể sử dụng var file:File = new File("/usr/bin/java"); và chuyển tham số cho tệp Java bằng Vector đối số. Ví dụ.

var arguments:Vector.<String> = new Vector.<String>; 
arguments.push("-jar"); 
Các vấn đề liên quan