- Có. Bạn có thể sử dụng một số trình xây dựng thiết lập, chẳng hạn như InnoSetup, chẳng hạn. Tuy nhiên, về mặt cá nhân, tôi thích cung cấp cho khách hàng của mình một tệp zip, tệp này họ giải nén ở bất cứ đâu họ thích. Jar thực thi sẽ có thể tự xử lý mọi thứ (tôi thích nó ở chỗ không cần cài đặt phần mềm, chỉ cần giải nén và chạy).
- Nếu nó được mã hóa cứng, thì có (nhưng, ý bạn là gì khi nói mã hóa cứng ? đường dẫn đến tệp? địa chỉ IP?). Bạn nên sử dụng thuộc tính hoặc tệp cấu hình cho đường dẫn và những thứ bên ngoài khác mà phần mềm của bạn phụ thuộc vào. Phần mềm sẽ đọc từ các tệp đó. Khi khởi động, hãy kiểm tra sự hiện diện của (các) tệp như vậy - nếu thiếu, người dùng sẽ được hiển thị một cửa sổ trong đó có thể nhập cấu hình.
Đối với việc triển khai MySQL với mã của bạn - hãy cân nhắc sử dụng một máy chủ cho việc đó, để người dùng của bạn không bị buộc phải cài đặt MySQL, thay vào đó họ kết nối với nó qua mạng. Nếu bạn chỉ cần cơ sở dữ liệu để lưu trữ dữ liệu cục bộ, tại sao không sử dụng SQLite hoặc một công cụ db dựa trên tệp tương tự?
Các câu trả lời trên chỉ là gợi ý và ít nhiều phản ánh cách tôi đang nghĩ. Tôi sẽ rất vui khi được nghe ý kiến từ một người có nhiều kinh nghiệm hơn. Tuy nhiên, tôi hy vọng câu trả lời sẽ giúp một chút :)