Get Product Url by Product Sku Magento 2.

You can get the product URL by SKU in Magento 2 using ProductRepositoryInterface.

Using Magento\Catalog\Api\ProductRepositoryInterface you need to call the get($sku) method of the interface.

You can get product URL by store view level from Product URL by specific store view in Magento

If Product SKU not found, throws an error,

namespace Path\To\Class;

use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Framework\Exception\NoSuchEntityException;

class ProductUrl
     * @var ProductRepositoryInterface
    protected $productRepository;

     * @param ProductRepositoryInterface $productRepository
    public function __construct(
        ProductRepositoryInterface $productRepository
    ) {
        $this->productRepository = $productRepository;

	 * This method returns the url from the product sku
	 * @return string|null
	public function getProductUrlBySku(): ?string
	    $sku = "24-MB01";
	    try {
	        $productUrl = $this->productRepository->get($sku)

	    } catch (NoSuchEntityException $noSuchEntityException) {
	    	$productUrl = null;
	    return $productUrl;

call $this->getProductUrlBySku(); from template or other php class.